From 1ed530d9465b497fe848a0f040910eb566a208bd Mon Sep 17 00:00:00 2001 From: Florian Rival Date: Wed, 30 Jan 2019 21:55:11 +0000 Subject: [PATCH] Add endless-up-runner and space-invaders examples --- .../examples/endless-up-runner/BlackMask.png | Bin 0 -> 107 bytes .../examples/endless-up-runner/Feet.png | Bin 0 -> 103 bytes .../examples/endless-up-runner/JumpButton.png | Bin 0 -> 785 bytes .../examples/endless-up-runner/LeftButton.png | Bin 0 -> 738 bytes .../examples/endless-up-runner/README.md | 1 + .../endless-up-runner/RightButton.png | Bin 0 -> 751 bytes .../examples/endless-up-runner/Rock.png | Bin 0 -> 2136 bytes .../examples/endless-up-runner/Spring1.png | Bin 0 -> 965 bytes .../examples/endless-up-runner/Spring2.png | Bin 0 -> 1592 bytes .../endless-up-runner/TutorialArrow.png | Bin 0 -> 3333 bytes .../endless-up-runner/TutorialBackground.png | Bin 0 -> 4587 bytes .../endless-up-runner/TutorialFall.png | Bin 0 -> 7882 bytes .../endless-up-runner/TutorialFall2.png | Bin 0 -> 7277 bytes .../endless-up-runner/TutorialJump.png | Bin 0 -> 6535 bytes .../endless-up-runner/TutorialJumpNext.png | Bin 0 -> 5051 bytes .../endless-up-runner/TutorialLeft.png | Bin 0 -> 8619 bytes .../endless-up-runner/TutorialMoving.png | Bin 0 -> 3844 bytes .../endless-up-runner/TutorialRight.png | Bin 0 -> 8620 bytes .../endless-up-runner/TutorialRocks.png | Bin 0 -> 12265 bytes .../endless-up-runner/TutorialWarp1.png | Bin 0 -> 5693 bytes .../endless-up-runner/TutorialWarp2.png | Bin 0 -> 4855 bytes .../endless-up-runner/endless-up-runner.json | 6007 ++++++++++++++ .../endless-up-runner/grassHalfMid.png | Bin 0 -> 603 bytes .../examples/endless-up-runner/hitbox.png | Bin 0 -> 160 bytes .../endless-up-runner/pauseButton.png | Bin 0 -> 1759 bytes .../examples/endless-up-runner/playButton.png | Bin 0 -> 2025 bytes .../examples/endless-up-runner/player.png | Bin 0 -> 483 bytes .../endless-up-runner/player_fall_1.png | Bin 0 -> 454 bytes .../endless-up-runner/player_fall_2.png | Bin 0 -> 461 bytes .../endless-up-runner/player_jump_1.png | Bin 0 -> 441 bytes .../endless-up-runner/player_jump_2.png | Bin 0 -> 430 bytes .../endless-up-runner/player_run_1.png | Bin 0 -> 502 bytes .../endless-up-runner/player_run_2.png | Bin 0 -> 479 bytes .../endless-up-runner/player_run_3.png | Bin 0 -> 438 bytes .../endless-up-runner/player_run_4.png | Bin 0 -> 444 bytes .../endless-up-runner/player_run_5.png | Bin 0 -> 418 bytes .../endless-up-runner/player_run_6.png | Bin 0 -> 431 bytes .../endless-up-runner/restartButton.png | Bin 0 -> 2385 bytes .../examples/space-invaders/Audio/desktop.ini | 4 + .../examples/space-invaders/Audio/laser1.ogg | Bin 0 -> 9315 bytes .../examples/space-invaders/Audio/laser8.ogg | Bin 0 -> 9383 bytes .../space-invaders/Audio/lowRandom.ogg | Bin 0 -> 5416 bytes .../space-invaders/Audio/twoTone1.ogg | Bin 0 -> 7362 bytes .../space-invaders/GFX/Background1.jpeg | Bin 0 -> 59962 bytes .../examples/space-invaders/GFX/Base.png | Bin 0 -> 1848 bytes .../examples/space-invaders/GFX/Fire.png | Bin 0 -> 10139 bytes .../examples/space-invaders/GFX/GDevelop.png | Bin 0 -> 18478 bytes .../examples/space-invaders/GFX/Left.png | Bin 0 -> 12316 bytes .../examples/space-invaders/GFX/Right.png | Bin 0 -> 12265 bytes .../space-invaders/GFX/enemyBlack5.png | Bin 0 -> 4139 bytes .../space-invaders/GFX/enemyBlue1.png | Bin 0 -> 4448 bytes .../space-invaders/GFX/enemyGreen2.png | Bin 0 -> 4432 bytes .../space-invaders/GFX/laserGreen04.png | Bin 0 -> 1612 bytes .../space-invaders/GFX/laserRed06.png | Bin 0 -> 1653 bytes .../space-invaders/GFX/playerShip1_red.png | Bin 0 -> 3942 bytes .../space-invaders/GFX/spaceStation_028.png | Bin 0 -> 3358 bytes .../space-invaders/Kenney Future Narrow.ttf | Bin 0 -> 34856 bytes .../examples/space-invaders/README.md | 1 + .../space-invaders/space-invaders.json | 7183 +++++++++++++++++ .../src/ProjectCreation/BrowserExamples.js | 2 + .../ProjectCreation/ExamplesInformation.js | 114 + .../ProjectsStorage/BrowserProjectOpener.js | 6 + newIDE/app/src/fixtures/admob/admob.json | 82 +- .../advanced-shape-based-painter.json | 2 +- .../animation-speed-scale.json | 2 +- .../app/src/fixtures/asteroids/asteroids.json | 18 +- .../basic-ai-with-pathfinding.json | 6 +- .../basic-artificial-intelligence.json | 6 +- .../basic-topdown-car-driving.json | 14 +- .../bomb-the-crate/bomb-the-crate.json | 2 +- .../bouncing-ball-and-rope.json | 10 +- .../app/src/fixtures/breakout/breakout.json | 2 +- newIDE/app/src/fixtures/buttons/buttons.json | 2 +- .../src/fixtures/car-physics/car-physics.json | 10 +- .../center-object-within-another.json | 2 +- .../change-position-of-object.json | 2 +- .../change-scale-of-sprites.json | 2 +- .../change-sprite-animation.json | 2 +- .../change-sprite-color.json | 2 +- .../character-selection.json | 2 +- .../controller-input/controller-input.json | 2 +- .../create-object-with-mouseclick.json | 2 +- .../src/fixtures/custom-font/custom-font.json | 2 +- .../custom-mouse-pointer.json | 2 +- .../customize-keys-with-lastpressedkey.json | 2 +- .../device-orientation-ballgame.json | 2 +- .../device-orientation-compass.json | 2 +- .../device-vibration/device-vibration.json | 2 +- .../drag-camera-with-mouse.json | 2 +- .../drop-collect-items-from-storage.json | 2 +- .../endless-up-runner/endless-up-runner.json | 6007 ++++++++++++++ .../app/src/fixtures/exit-app/exit-app.json | 2 +- .../facebook-instant-game.json | 2 +- .../find-diagonals/find-diagonals.json | 22 +- .../src/fixtures/health-bar/health-bar.json | 2 +- .../infinite-scrolling-background.json | 2 +- .../inventory-system/inventory-system.json | 6 +- .../isometric-game/isometric-game.json | 2 +- .../javascript-blocks-in-platformer.json | 2 +- .../keyboard-practice/keyboard-practice.json | 2 +- .../fixtures/level-editor/level-editor.json | 2 +- .../load-image-from-url.json | 2 +- newIDE/app/src/fixtures/magnet/magnet.json | 6 +- .../manipulate-text-object.json | 2 +- .../move-camera-to-position.json | 2 +- .../move-object-back-and-forth.json | 2 +- .../move-object-in-circle.json | 2 +- .../move-object-toward-position.json | 2 +- .../move-object-with-mouse-joint.json | 2 +- .../move-object-with-physics.json | 2 +- .../src/fixtures/multitouch/multitouch.json | 2 +- .../object-gravity/object-gravity.json | 26 +- .../object-selection/object-selection.json | 2 +- .../objects-timers/objects-timers.json | 2 +- .../open-url-in-browser.json | 2 +- .../parallax-scrolling.json | 2 +- .../app/src/fixtures/parallax/parallax.json | 2 +- .../parse-json-from-api.json | 2 +- .../parse-json-string/parse-json-string.json | 2 +- .../particles-explosions.json | 2 +- .../particles-various-effects.json | 2 +- .../pathfinding-basics.json | 2 +- .../src/fixtures/pathfinding/pathfinding.json | 2 +- .../physics-joints-demo.json | 346 +- .../physics-joints-settings-demo.json | 238 +- newIDE/app/src/fixtures/physics/physics.json | 10 +- ...in-object-to-another-multiple-parents.json | 24 +- .../pin-object-to-another.json | 2 +- .../pixel-perfect-platform-game.json | 2 +- .../plane-and-clouds/plane-and-clouds.json | 34 +- .../platformer-double-jump.json | 2 +- .../src/fixtures/platformer/platformer.json | 2 +- .../play-music-on-mobile.json | 2 +- .../play-stop-sprite-animation.json | 2 +- .../src/fixtures/racing-game/racing-game.json | 14 +- newIDE/app/src/fixtures/ragdoll/ragdoll.json | 74 +- newIDE/app/src/fixtures/rain/rain.json | 2 +- .../random-color-picker.json | 2 +- .../rotate-toward-mouse.json | 2 +- .../rotate-toward-position.json | 2 +- .../rotate-with-keypress.json | 2 +- .../app/src/fixtures/save-load/save-load.json | 2 +- .../fixtures/screen-shake/screen-shake.json | 2 +- .../shoot-bullet-in-parabola.json | 2 +- .../fixtures/shoot-bullets/shoot-bullets.json | 6 +- .../shooting-bullets-explanation.json | 10 +- .../snap-object-to-grid.json | 2 +- .../space-invaders/space-invaders.json | 7183 +++++++++++++++++ .../space-shooter-with-functions.json | 4 +- .../fixtures/space-shooter/space-shooter.json | 4 +- .../fixtures/splash-screen/splash-screen.json | 2 +- .../sprite-fade-in-out.json | 2 +- .../take-screenshot/take-screenshot.json | 2 +- .../text-entry-object/text-entry-object.json | 2 +- .../text-fade-in-out/text-fade-in-out.json | 2 +- .../text-to-speech/text-to-speech.json | 2 +- .../toggle-music-play-sound.json | 10 +- .../type-on-text-effect.json | 2 +- newIDE/app/src/fixtures/z-depth/z-depth.json | 2 +- .../fixtures/zombie-laser/zombie-laser.json | 14 +- 160 files changed, 27077 insertions(+), 569 deletions(-) create mode 100755 newIDE/app/resources/examples/endless-up-runner/BlackMask.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/Feet.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/JumpButton.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/LeftButton.png create mode 100644 newIDE/app/resources/examples/endless-up-runner/README.md create mode 100755 newIDE/app/resources/examples/endless-up-runner/RightButton.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/Rock.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/Spring1.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/Spring2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialArrow.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialBackground.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialFall.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialFall2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialJump.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialJumpNext.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialLeft.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialMoving.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialRight.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialRocks.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialWarp1.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/TutorialWarp2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/endless-up-runner.json create mode 100755 newIDE/app/resources/examples/endless-up-runner/grassHalfMid.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/hitbox.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/pauseButton.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/playButton.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_fall_1.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_fall_2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_jump_1.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_jump_2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_1.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_2.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_3.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_4.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_5.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/player_run_6.png create mode 100755 newIDE/app/resources/examples/endless-up-runner/restartButton.png create mode 100755 newIDE/app/resources/examples/space-invaders/Audio/desktop.ini create mode 100755 newIDE/app/resources/examples/space-invaders/Audio/laser1.ogg create mode 100755 newIDE/app/resources/examples/space-invaders/Audio/laser8.ogg create mode 100755 newIDE/app/resources/examples/space-invaders/Audio/lowRandom.ogg create mode 100755 newIDE/app/resources/examples/space-invaders/Audio/twoTone1.ogg create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/Background1.jpeg create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/Base.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/Fire.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/GDevelop.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/Left.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/Right.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/enemyBlack5.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/enemyBlue1.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/enemyGreen2.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/laserGreen04.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/laserRed06.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/playerShip1_red.png create mode 100755 newIDE/app/resources/examples/space-invaders/GFX/spaceStation_028.png create mode 100755 newIDE/app/resources/examples/space-invaders/Kenney Future Narrow.ttf create mode 100644 newIDE/app/resources/examples/space-invaders/README.md create mode 100755 newIDE/app/resources/examples/space-invaders/space-invaders.json create mode 100644 newIDE/app/src/fixtures/endless-up-runner/endless-up-runner.json create mode 100644 newIDE/app/src/fixtures/space-invaders/space-invaders.json diff --git a/newIDE/app/resources/examples/endless-up-runner/BlackMask.png b/newIDE/app/resources/examples/endless-up-runner/BlackMask.png new file mode 100755 index 0000000000000000000000000000000000000000..77d3a2f496c4c3c0e0bdc461e49765b5f6544632 GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevDDT6R$#Zvn+prEX$ zi(`mHcydZYLIz7xQ$yzht`$vztrgB)FCH*5+%sXA+BmIpH&7vir>mdKI;Vst0GnMK AcK`qY literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/Feet.png b/newIDE/app/resources/examples/endless-up-runner/Feet.png new file mode 100755 index 0000000000000000000000000000000000000000..202486fe32bb17124a8be52f1c025ad1a1290e86 GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0vp^5x9-I14-?iy0WWg+Q3`(%rg0KtV}Q w7sn8Z@Z^w+DL>~owl#FNr8W1;{SsqfSn0=9q`I7t*__Ij{JD%|L;YZ$! zl7u&}rxX*Wsv^pFl~E*u`-Xnt*Q1cK2l8#0D+%#q%V%dkPU#~EJo3yD6d8%Bh$u6#(Lv6I7PhxHanNSLE&;+(LS3Kezx4{w zq>qROIvZr^-3;>%8w-MPiN%an`W&mKRy;2a&EWMZNGJ(hKaAU5PQ4anF@j&5{PoS3 zc)TLu>Jy3m*uXUN8**866;PaG!6t3QeOX-zw)-PYCd-1d1ob7$^%hE{7o>|7~ON)SJENA@kV+JPX3CXTDq5~g(5|BPu4`A1{ zLPc7cfl!oS=McSj#avG<{HeD}2V{`WHe4%pU|eLYy_?>)8pcl5u~$VvDMVF;*vABj zJhjw;MknizRutNSzk4@UUcD@Y1G+yXnhwa>P9;Js6f>sjfb?DS$0(T&=z(eba&-Tx4j2ub z%uY`SlqC>fyReZT3O#ZXLt?4ylmw&>=z$yEPlcu1ghqp`)hXQf)PuS|ipdD!9~Og18hFM7N5sg=vgLun^nER+|_kO_Sz1lkvN)BT~YA6Nb`FzTMn2 z_k1Vko_p^^!fovgwy|v6*n7QoUqIghN3S8=<%RQ30!I%85EXNq3L4j*;>l74t%d@P z!#DTqNq|R&?Z!z=>dgh&qYU27t)SV_01of=V|&WLgbxF!_aLql&6Tk5_$%_FxhM|r zCcu;f4jZJ)QwUs-~zw6H7T*wU_7dmpht zE_67YYc6oZ3=ENgtA~+TC(@uj&*H=VB<3qksA7o2%?L1bfcEm(1-$Yx6$q0@`QEekM1VD%ltB@hRV-hi?YiTL6AzafX45obr@=0BS^ zPe>O~xO4z9F}`~Tf^H|OUy3M;9U#Uy+_C_P7*q|vr$d;41Zn>;#=J7BsRGI^6&iqnH}Bp3P#B&iuUKk{xiJ zi{J$M(+-&&aeOMExYB^i;YK1%2@uyU-F|B` z%g9}b;-DZ53}WP17@jwa_$ijc2(Pv_LffrO3D74}`c<-C9rqzD#wZ&;`XVYOm$51q zo5L*&5XsLJQHlj12gw0JI5mRss~oa53M>gQ#FZ{SNd13C+&0;2oIMBn0=C+LKftzp UL}h*{F#rGn07*qoM6N<$f&pPjm;e9( literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/README.md b/newIDE/app/resources/examples/endless-up-runner/README.md new file mode 100644 index 000000000000..0e75de58d926 --- /dev/null +++ b/newIDE/app/resources/examples/endless-up-runner/README.md @@ -0,0 +1 @@ +A game where the player have to jump on platforms and avoid falling down as the screen goes up. With special objects (spring, rocks), score and Game Over handling! \ No newline at end of file diff --git a/newIDE/app/resources/examples/endless-up-runner/RightButton.png b/newIDE/app/resources/examples/endless-up-runner/RightButton.png new file mode 100755 index 0000000000000000000000000000000000000000..1136708b2edc0766713ec3ab27d7f9f42263e241 GIT binary patch literal 751 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 O0000X1^@s6b5wmq00009a7bBm001r{ z001r{0eGc9b^rhacS%G+R9HvtSj|opK@hI)=@}(afuP1Uk*Fbr^#wFsJ@^t{kvk?n zh92Y~@mWl~h@3rnF)YFlaHg#Zpqw;#^3$=Uh|aIFEfbYyIrfK^x`NlTKuXw+Ie-UZdz045@rArP1YV9^+`E0`HStt)hm+TH}U`7M*+ zkW|MxgCGpiz)4LYCVSlY0V$Am5pWI~2W9PSu{bggaR%F_?IFSMo)+O*@`%?uw%nRP zSy4g-l@s#q_yUm|mM^-=poX#q+#A&BfIdqK9pWDuwNwUjNu;vLF8GB@k6f^UD}SEj zjyu}hQ6H3u1Dzu~MyYW+L%L4zK0Y$cArvwpb~>-OiO6!R)qc}x?BQ`Q&^`S*$Q_WK zXXM|qqByj|{1h}Ib|SJYjD@#t3t<``FCwm+{a|Aj!$!fzG!Mdm#|Gmjqoq*x*kZMp zO5tN&kOZT>!+8w{1lffslzfNl?3JF+)t`md&KPtjgKPgzg9A z0Z&RJNFwAeLzs=PyZ$5rMMSc({VdZiE`t#vec+_O_V&82yCfb$;>xloytK*^6y7T& zNrOb<{e61r|9J#~;tvW2lT%X=xf`0h%opHub2;mK%a`lUBbb%*)wx?``v5L{Z)j(3 n?+scbc|Vc&8wUP|s-AuW#R<8i$9_Q600000NkvXXu0mjf9u2WM literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/Spring2.png b/newIDE/app/resources/examples/endless-up-runner/Spring2.png new file mode 100755 index 0000000000000000000000000000000000000000..2baeaf6aca0f58ca20c9a4980bfd78b1b29b795b GIT binary patch literal 1592 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialBackground.png b/newIDE/app/resources/examples/endless-up-runner/TutorialBackground.png new file mode 100755 index 0000000000000000000000000000000000000000..38310027927a9d47f28ae32627ca9d5a44f9ed21 GIT binary patch literal 4587 zcmeAS@N?(olHy`uVBq!ia0y~yVAKKPFC1(@k#+$Ab0Ec8;1OBOz@VoL!i*J5?aLS# z1m}9XIEGZjy}jdjN-lg8OTg(0M!D=If7g2{_iknR-ed1`#qaL zm;L`WpF!R_t&@pgUI|1AI2{QdLu^Yw#|WkdBoRR8>QOx;1j!y%Ei_328M zTdX2szr_>km>ik7v^8}6RWIl**l=qPoV zFy|I-jWyr&5By%C|MB_n z<4pGdHyRk7EVsMW|L*-6)t{m6k+nac&#&*+u9VBKpV)AyDo|pcQ^SGttRmC&TNoN8 z7+Xb!r?v|zEZ9)P%))VmLu1X16*f~C7+ar8D>x{)IV2u+dAg8=Lqq32&{{*FSJkxm zRUI4>f3k51bO;7S7zS2qFfwtSHg{-n=xI3A)p^R9Q(!~k6>|gKgvT$otoV#@vW*&0 zBzenR_S+V>X8yi*rLN@uq<1@yAG-l>@g$=;qymm6y zqv1d(V{2*Xx%nylZ86O10p^ON;Nq2HynC(^41cTN5J$^)54~3L3zQ3s!e8^jTOM4mS4!o@dX&h z^Vax!DZ~K-mq;TL9%uMpi=KSTVwdV$IbiHVlfib@9GShoFB&#C^e*1luFm@B#lIza z&u^Obl|9>MwDnL_Vi_kRlQ7WlP8TIvIMx6y7EPNjpkSc5V1t^-T*rn3UBJ+zx+1ea zKMkwLIthQudmz>|Gpv>761pKM5!lL?1YI@pcQJ1@{e$SJf3k2m0Unzbc!T`#2;0op!J` zU4jlXrhsX)Ws&hYP|}oxMLQ^;jwVfV((h=}q+-?|O`6m!T1S)SXwqaFtn*Z=>~i>Zfx{hEJhSJ5%US;cj71-s7o|2wNwyH0*-+Pe1r>HjBw z`2XkkvU*-dru70A|LoU1zAsw$_5A+-g&%%YKmV`UR{T%w!ROEVjr{Yi_kLV$`#9bo s(o=?anMWCjo+G>qNq5EqhX?wPm`q;3JtM;j9KB)iboFyt=akR{08O=x3;+NC literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialFall.png b/newIDE/app/resources/examples/endless-up-runner/TutorialFall.png new file mode 100755 index 0000000000000000000000000000000000000000..d182207761acb8d3f7ce0bd8f4da4e8ce18ccf47 GIT binary patch literal 7882 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialFall2.png b/newIDE/app/resources/examples/endless-up-runner/TutorialFall2.png new file mode 100755 index 0000000000000000000000000000000000000000..3d9b25d5d2c8864fadb6900ddef124e0ad8dc320 GIT binary patch literal 7277 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialJump.png b/newIDE/app/resources/examples/endless-up-runner/TutorialJump.png new file mode 100755 index 0000000000000000000000000000000000000000..39da3607b28c4d9eaaea5c9d92a554a470dbd252 GIT binary patch literal 6535 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialLeft.png b/newIDE/app/resources/examples/endless-up-runner/TutorialLeft.png new file mode 100755 index 0000000000000000000000000000000000000000..4f26f212cf9719282a8d0d2d80c8dfebb74287a6 GIT binary patch literal 8619 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

!X9Eh1))CJf>MZx6roE_`RCBFCx5;>J+| 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialMoving.png b/newIDE/app/resources/examples/endless-up-runner/TutorialMoving.png new file mode 100755 index 0000000000000000000000000000000000000000..683549b6f59d32a0ac4a7884e9a17bdcaae68fff GIT binary patch literal 3844 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 IR?j8wKOKZrx&QzG literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialRight.png b/newIDE/app/resources/examples/endless-up-runner/TutorialRight.png new file mode 100755 index 0000000000000000000000000000000000000000..18d0c51353e6634361e9b3d0f31bedfe9bbc5332 GIT binary patch literal 8620 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/TutorialWarp1.png b/newIDE/app/resources/examples/endless-up-runner/TutorialWarp1.png new file mode 100755 index 0000000000000000000000000000000000000000..b348a8c93af7b0443e852e8a7784b3b69c98afe4 GIT binary patch literal 5693 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/endless-up-runner.json b/newIDE/app/resources/examples/endless-up-runner/endless-up-runner.json new file mode 100755 index 000000000000..18436df2e238 --- /dev/null +++ b/newIDE/app/resources/examples/endless-up-runner/endless-up-runner.json @@ -0,0 +1,6007 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 97, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adMobAppId": "", + "folderProject": false, + "linuxExecutableFilename": "", + "macExecutableFilename": "", + "orientation": "landscape", + "packageName": "com.example.gamename", + "projectFile": "C:\\Users\\pc\\Programacion\\gdevelop\\test\\EndlessRunningUp\\game.json", + "scaleMode": "linear", + "sizeOnStartupMode": "", + "useExternalSourceFiles": false, + "version": "1.0.0", + "winExecutableFilename": "", + "winExecutableIconFile": "", + "name": "Project", + "author": "", + "windowWidth": 300, + "windowHeight": 500, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 10, + "verticalSync": false, + "platformSpecificAssets": {}, + "loadingScreen": { + "showGDevelopSplash": true + }, + "extensions": [ + { + "name": "BuiltinObject" + }, + { + "name": "BuiltinAudio" + }, + { + "name": "BuiltinVariables" + }, + { + "name": "BuiltinTime" + }, + { + "name": "BuiltinMouse" + }, + { + "name": "BuiltinKeyboard" + }, + { + "name": "BuiltinJoystick" + }, + { + "name": "BuiltinCamera" + }, + { + "name": "BuiltinWindow" + }, + { + "name": "BuiltinFile" + }, + { + "name": "BuiltinNetwork" + }, + { + "name": "BuiltinScene" + }, + { + "name": "BuiltinAdvanced" + }, + { + "name": "Sprite" + }, + { + "name": "BuiltinCommonInstructions" + }, + { + "name": "BuiltinCommonConversions" + }, + { + "name": "BuiltinStringInstructions" + }, + { + "name": "BuiltinMathematicalTools" + }, + { + "name": "BuiltinExternalLayouts" + } + ], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "player.png", + "kind": "image", + "metadata": "", + "name": "player.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_jump_1.png", + "kind": "image", + "metadata": "", + "name": "player_jump_1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_jump_2.png", + "kind": "image", + "metadata": "", + "name": "player_jump_2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "player_run_1.png", + "kind": "image", + "metadata": "", + "name": "player_run_1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "player_run_2.png", + "kind": "image", + "metadata": "", + "name": "player_run_2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_run_3.png", + "kind": "image", + "metadata": "", + "name": "player_run_3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_run_4.png", + "kind": "image", + "metadata": "", + "name": "player_run_4.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_run_5.png", + "kind": "image", + "metadata": "", + "name": "player_run_5.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_run_6.png", + "kind": "image", + "metadata": "", + "name": "player_run_6.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_fall_1.png", + "kind": "image", + "metadata": "", + "name": "player_fall_1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "player_fall_2.png", + "kind": "image", + "metadata": "", + "name": "player_fall_2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "grassHalfMid.png", + "kind": "image", + "metadata": "", + "name": "grassHalfMid.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "Rock.png", + "kind": "image", + "metadata": "", + "name": "Rock.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "hitbox.png", + "kind": "image", + "metadata": "", + "name": "hitbox.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "BlackMask.png", + "kind": "image", + "metadata": "", + "name": "BlackMask.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "pauseButton.png", + "kind": "image", + "metadata": "", + "name": "pauseButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "playButton.png", + "kind": "image", + "metadata": "", + "name": "playButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "restartButton.png", + "kind": "image", + "metadata": "", + "name": "restartButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "Feet.png", + "kind": "image", + "metadata": "", + "name": "Feet.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialRight.png", + "kind": "image", + "metadata": "", + "name": "TutorialRight.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialLeft.png", + "kind": "image", + "metadata": "", + "name": "TutorialLeft.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialJump.png", + "kind": "image", + "metadata": "", + "name": "TutorialJump.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialBackground.png", + "kind": "image", + "metadata": "", + "name": "TutorialBackground.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialJumpNext.png", + "kind": "image", + "metadata": "", + "name": "TutorialJumpNext.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialArrow.png", + "kind": "image", + "metadata": "", + "name": "TutorialArrow.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialRocks.png", + "kind": "image", + "metadata": "", + "name": "TutorialRocks.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialWarp1.png", + "kind": "image", + "metadata": "", + "name": "TutorialWarp1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialWarp2.png", + "kind": "image", + "metadata": "", + "name": "TutorialWarp2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialFall.png", + "kind": "image", + "metadata": "", + "name": "TutorialFall.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialMoving.png", + "kind": "image", + "metadata": "", + "name": "TutorialMoving.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "LeftButton.png", + "kind": "image", + "metadata": "", + "name": "LeftButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "RightButton.png", + "kind": "image", + "metadata": "", + "name": "RightButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "JumpButton.png", + "kind": "image", + "metadata": "", + "name": "JumpButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "Spring1.png", + "kind": "image", + "metadata": "", + "name": "Spring1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "Spring2.png", + "kind": "image", + "metadata": "", + "name": "Spring2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "TutorialFall2.png", + "kind": "image", + "metadata": "", + "name": "TutorialFall2.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [ + { + "name": "firstPlay", + "value": "1" + }, + { + "name": "bestScore", + "value": "0" + } + ], + "layouts": [ + { + "b": 30, + "disableInputWhenNotFocused": true, + "mangledName": "Game", + "name": "Game", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 30, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 30, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": false, + "zoomFactor": 1 + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "PlayerSprite", + "width": 0, + "x": 112, + "y": 387, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 280, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": -70, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 70, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 140, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 210, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 0, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 111, + "y": 350, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 230, + "y": 240, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 0, + "y": 130, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Player", + "width": 0, + "x": 167, + "y": 423, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 110, + "y": 20, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "4" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 500, + "layer": "Pause", + "locked": false, + "name": "BlackMask", + "width": 300, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GUI", + "locked": false, + "name": "PauseButton", + "width": 0, + "x": 240, + "y": 10, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "Pause", + "locked": false, + "name": "PlayButton", + "width": 0, + "x": 125, + "y": 200, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 500, + "layer": "GameOver", + "locked": false, + "name": "BlackMask", + "width": 300, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "RestartButton", + "width": 0, + "x": 125, + "y": 300, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GUI", + "locked": false, + "name": "ScoreText", + "width": 0, + "x": 10, + "y": 3, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "PlayerFeet", + "width": 0, + "x": 158, + "y": 449, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -65.556, + "customSize": true, + "height": 15, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 130, + "x": 120, + "y": 268, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 5 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 28, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 147, + "x": 78, + "y": 432, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 3 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 0, + "y": 320, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 1 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 184, + "y": 320, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 2 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 30, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 171, + "x": 64, + "y": -134, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 9 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "5" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 50, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 93, + "x": 80, + "y": 230, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 4 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 83, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 154, + "x": 75, + "y": 64, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 6 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 86, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 66, + "x": 232, + "y": 99, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 7 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 55, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 123, + "x": -16, + "y": 68, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 8 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "FinalScoreTitle", + "width": 0, + "x": 78, + "y": 40, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "FinalScore", + "width": 0, + "x": 135, + "y": 102, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "NewRecord", + "width": 0, + "x": 4, + "y": 175, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "BestScore", + "width": 0, + "x": 113, + "y": 242, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 420, + "layer": "GUI", + "locked": false, + "name": "LeftButton", + "width": 150, + "x": 1, + "y": 1, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 420, + "layer": "GUI", + "locked": false, + "name": "RightButton", + "width": 150, + "x": 150, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 80, + "layer": "GUI", + "locked": false, + "name": "JumpButton", + "width": 300, + "x": 0, + "y": 420, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 30, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 171, + "x": 62, + "y": -415, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 11 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "5" + } + ] + } + ], + "objects": [ + { + "name": "Player", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "acceleration": 9999, + "canGrabPlatforms": false, + "deceleration": 9999, + "gravity": 1000, + "ignoreDefaultControls": false, + "jumpSpeed": 680, + "maxFallingSpeed": 700, + "maxSpeed": 160, + "name": "PlatformerObject", + "roundCoordinates": true, + "slopeMaxAngle": 60, + "type": "PlatformBehavior::PlatformerObjectBehavior", + "xGrabTolerance": 10, + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "hitbox.png", + "points": [ + { + "name": "Sprite", + "x": -20, + "y": -15 + }, + { + "name": "Feet", + "x": 0, + "y": 48 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayerFeet", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Feet.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayerSprite", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "run", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_run_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_6.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "jump", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_jump_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_jump_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "fall", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_fall_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_fall_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Platform", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "canBeGrabbed": true, + "name": "Platform", + "platformType": "Jumpthru", + "type": "PlatformBehavior::PlatformBehavior", + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "grassHalfMid.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Rock", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Rock.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "ScoreText", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "0", + "font": "", + "characterSize": 50, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "name": "BlackMask", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "BlackMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PauseButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "pauseButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Spring", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Spring1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15, + "y": 25 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Spring2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 35, + "y": 38 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "playButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "RestartButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "restartButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "TutorialTips", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialBackground.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialLeft.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialRight.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialJump.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialJumpNext.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialArrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialRocks.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialWarp1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialWarp2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialMoving.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialFall.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialFall2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "FinalScoreTitle", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "SCORE:", + "font": "", + "characterSize": 40, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "bold": false, + "italic": false, + "name": "FinalScore", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "0", + "font": "", + "characterSize": 50, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "bold": true, + "italic": false, + "name": "NewRecord", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "NEW RECORD!", + "font": "", + "characterSize": 40, + "color": { + "b": 40, + "g": 193, + "r": 233 + } + }, + { + "bold": false, + "italic": false, + "name": "BestScore", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "BEST: 0", + "font": "", + "characterSize": 20, + "color": { + "b": 40, + "g": 193, + "r": 233 + } + }, + { + "name": "LeftButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "LeftButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "RightButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "RightButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "JumpButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JumpButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Initialization", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Variables meaning:\nmovingCamera: 1 to move the camera upwards, 0 to stop it (used in the tutorial)\nmovingSpeed: Speed in pixels/second the camera will move\nincreasedSpeedPerScore: How much the speed is increased per score point\nmaxMovingSpeed: The maximum speed the camera can move at\ntopY: The top position where there's the topmost platform\nplatformDistance: The distance between created platforms\nrandomPlatformDistance: A small random offset to add to the distance\nthrowRocks: 1 to throw rocks, 0 to stop doing so, used in the tutorial\nrockTime: Time between each rock\nrockWidth: The width of the rock sprite, to create the rock in a single action\nrockSpeed: The speed in pixels/second the rocks will fall\nspringChance: The chance a spring will appear over a new platform, 100 means 100% chance.\nspringWidth: The width of the spring base\ncommonJumpSpeed: The common jump speed, needed to reset after a spring jump\nspringJumpSpeed: The jump speed when a spring is used\nspringJumping: 1 if the player is in the middle of a spring jump, 0 otherwise\ngamePaused: 1 to pause the game, 0 to continue\ngameRunning: 0 to run game over scripts, 1 to continue", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingSpeed", + "=", + "10" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "increasedSpeedPerScore", + "=", + "0.5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "maxMovingSpeed", + "=", + "100" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "topY", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "platformDistance", + "=", + "90" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "randomPlatformDistance", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockTime", + "=", + "4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockWidth", + "=", + "50" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockSpeed", + "=", + "80" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springChance", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springWidth", + "=", + "20" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "commonJumpSpeed", + "=", + "680" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumpSpeed", + "=", + "2000" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set layers visibility and hide helper objects", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"GUI\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"GameOver\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "Player" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "PlayerFeet" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "TutorialTips" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "NewRecord" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Player controls", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Hide the buttons, they have an image only for better visualization during edition", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "LeftButton" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "RightButton" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "JumpButton" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Enable multitouch on mobiles", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "TouchSimulateMouse" + }, + "parameters": [ + "", + "no" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Don't read inputs if game is paused", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to the left if left key is pressed or click on left button on mobile", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "LeftButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "FlipX" + }, + "parameters": [ + "PlayerSprite", + "yes" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to the right if right key is pressed or click on right button on mobile", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Right" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "RightButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "FlipX" + }, + "parameters": [ + "PlayerSprite", + "no" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Jump if up key is pressed or click on jump button on mobile\nIt works a single time per press (because the trigger once)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Up" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "JumpButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "On floor animations, note that only one animation can be set at a time", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PlatformBehavior::IsMoving" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"idle\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsMoving" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"run\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "On air animations, note that only once animation can be set a time", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsJumping" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"jump\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"fall\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Teleport to the right if the player is totally out at left side", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Player", + "<", + "-Player.Width()/2" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Player", + "+", + "SceneWindowWidth() + Player.Width()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Teleport to the left if the player is totally out at right side", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Player", + ">", + "SceneWindowWidth() + Player.Width()/2" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Player", + "-", + "SceneWindowWidth() + Player.Width()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the player sprite and feet (helper objects) over the player object\nIt is done while the game is running only, this way on game over we can move the sprite as we want", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreXY" + }, + "parameters": [ + "PlayerSprite", + "=", + "Player.PointX(Sprite)", + "=", + "Player.PointY(Sprite)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreXY" + }, + "parameters": [ + "PlayerFeet", + "=", + "Player.PointX(Feet)", + "=", + "Player.PointY(Feet)" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Tutorial", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Deactivate camera movement and rocks throwing the first time to run the tutorial\nfirstPlay is a global variable with a starting value of 1", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarGlobal" + }, + "parameters": [ + "firstPlay", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Show the first tips (controls and background)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "1" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "TutorialTips", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Each time the player is over a new platform, deactivate the previous tips and show the next ones", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "PlayerFeet", + "Platform", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "Platform.Variable(id)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "TutorialTips" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "Platform.Variable(id) + 1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "TutorialTips", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "In the second step (first platform) create a rock", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "id", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "throwRocks", + "Rock", + "SceneWindowWidth()/2 - Variable(rockWidth)/2", + "- Variable(rockWidth) - 250", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Rock", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AddForceXY" + }, + "parameters": [ + "Rock", + "0", + "Variable(rockSpeed)", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "In the last step flag the tutorial as complete setting the firstPlay global variable to 0, reset the scene since now won't launch the tutorial again\nAlso start moving the camera and throwing rocks", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "id", + "=", + "4" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "firstPlay", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Scoring", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If player steps on a new platform, add score and flag the platform as \"used\" to not give scores anymore\nNote that the score is not increased by 1 but by the amount of platforms, in this game it makes no difference, but this way if the player steps on two platforms at the same time the score will be increased by 2\nAlso update the text that shows the score", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "PlayerFeet", + "Platform", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "score", + "+", + "Count(Platform)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreText", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player is in a spring jump it won't step on platforms, instead increase the score by the platforms it leaves below\nAgain, the score is increased by the amount of platforms, in case it moves too fast and leaves more than one platform behind in a single frame", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springJumping", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Platform", + ">", + "Player.Y() + Player.Height()" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "score", + "+", + "Count(Platform)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreText", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Camera movement", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only move the camera if it's enabled\nMove the camera by the base speed + increased speed per platform times the number of platforms, everything limited by the maximum speed", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "totalMovingSpeed", + "=", + "min(Variable(movingSpeed) + Variable(increasedSpeedPerScore)*Variable(score), Variable(maxMovingSpeed))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "-", + "Variable(totalMovingSpeed)*TimeDelta()", + "", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the camera upward so the player is never off-focus\nOnly do it while the game is running, because in game over the player is deleted", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + ">", + "Player.Y()", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "=", + "Player.Y()", + "", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The player is totally behind the camera, game over", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Player", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Platforms", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The camera top border is over the last platform position, create a new platform above and update the top platform limit\nAlso set a random value between 1 and 100 to decide if a spring must be created", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "<", + "Variable(topY) + CameraHeight(\"\",0)/2 + Platform.Height()", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "topY", + "-", + "Variable(platformDistance) + Random(Variable(randomPlatformDistance))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "randomX", + "=", + "Random(SceneWindowWidth() - Platform.Width())" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Platform", + "Variable(randomX)", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Platform", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springRandom", + "=", + "RandomInRange(1, 100)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The random value is inside the spring random chance, create the spring in a valid position over the platform", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springRandom", + "<=", + "Variable(springChance)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Spring", + "Variable(randomX) + Random(Platform.Width() - Variable(springWidth))", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Spring", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete platforms totally outside the camera view (plus player height so the player can stand in the edge a bit more)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Platform", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + Player.Height() + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Platform", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Rocks", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only throw rocks if it's enabled", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create a rock above the camera limit (so the player can't see it being created) every rockTime seconds, and move it downwards", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "Variable(rockTime)", + "\"throwRock\"" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"throwRock\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Rock", + "Random(300) - Variable(rockWidth)/2", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Rock", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AddForceXY" + }, + "parameters": [ + "Rock", + "0", + "Variable(rockSpeed)", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Rotate the rock to make it look a bit better", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "Rotate" + }, + "parameters": [ + "Rock", + "90", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete rocks totally outside the camera view", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Rock", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + Player.Height() + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Rock", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player collides with a rock, game over\nDon't kill the player if it's in a spring jump, that would be super unfair", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Rock", + "", + "", + "yes" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Spring", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset to common jump speed if the player is on floor", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::JumpSpeed" + }, + "parameters": [ + "Player", + "PlatformerObject", + "=", + "Variable(commonJumpSpeed)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player is falling on a spring, increase the jump speed and launch it to the moon, also flag it as \"in a spring jump\"", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Spring", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::JumpSpeed" + }, + "parameters": [ + "Player", + "PlatformerObject", + "=", + "Variable(springJumpSpeed)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SetCanJump" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeAnimation" + }, + "parameters": [ + "Spring", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Pause", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Controls to pause only works while the game is running", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keyboard controls, switch the pause variable (0 to 1, or 1 to 0)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "p" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1 - Variable(gamePaused)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Unpause, common time scale and hidden pause layer", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pause, time scale to 0 (so every moving thing won't move anymore) and show the pause layer", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Allow both desktop click and touch on the pause button", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Same than before, pause and unpause", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "PauseButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Game over", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Game over events run only on game over/game not running", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This event and its sub-events will run a single time on game over\nDelete the player (but leave the sprite), show the game over layer and update the final score text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Player", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"GameOver\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "FinalScore", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "FinalScore", + "=", + "SceneWindowWidth()/2 - FinalScore.Width()/2" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the new score is higher than the best score, update the best score and show the new record text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "score", + ">", + "GlobalVariable(bestScore)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "NewRecord", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "bestScore", + "=", + "Variable(score)" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update the best score text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "BestScore", + "=", + "\"BEST: \" + ToString(GlobalVariable(bestScore))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "BestScore", + "=", + "SceneWindowWidth()/2 - BestScore.Width()/2" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the player sprite downwards, for a small falling effect when hit by a rock", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"fall\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "PlayerSprite", + "+", + "400*TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset button clicked or touched, reset the scene", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "RestartButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "name": "Background", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "name": "GUI", + "visibility": false, + "cameras": [], + "effects": [] + }, + { + "name": "Pause", + "visibility": false, + "cameras": [], + "effects": [] + }, + { + "name": "GameOver", + "visibility": false, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [ + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior" + }, + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior" + } + ] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file diff --git a/newIDE/app/resources/examples/endless-up-runner/grassHalfMid.png b/newIDE/app/resources/examples/endless-up-runner/grassHalfMid.png new file mode 100755 index 0000000000000000000000000000000000000000..2a2cf7e54c42edc869c2499e250b4fbcf12111de GIT binary patch literal 603 zcmV-h0;K(kP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0001BP)t-s|NsA!+a!R#AEBEw zi?St_rYxkFHoJgCw}U~zh*7+PNWO(lgSsKFi#@@KQ^k*5#Ex3KfJMWMSE!RX$CP8m zkY2`;V8@hX$(U)#muSI?RLGWQ#*tsgm1M}4XaE2IhHlS!00001bW%=J06^y0W&i*H z0b)x>L;#2d9Y_EG0dPq~K~z}7?a|AU!XOZZ;hxb1H7ed>i0HikV;T_B7kV=_SXD{V^LnK-t=VW!V~pmkH>TB?))>v16wR3wLmZ%r z;zXr%qCy;CO5r3$I!QqXh_c;DCn{Yhov7@##EH!Q5X#Y>gcI@3+KzodQcm_5@?oEu ztXSb>ML1cp!~v>s2NmX^LL6WUb*Mrds-Od0L5C}|! zSECVpu+f;t_-1S2MgIVOq1EV%#*oIOeW86(7SL2&~5--I--r_9kSPoqNyyzWd|cbH6j3g;cIwd8%^X{NmFo$=Zcrk4wq+!*nfY z>>=txGWIV%7C2{r83wx+;cWDFUG(>Z2me?P0|NRfzQ`Y0#q3?}C@dV8k{`ooO+ag_ zoXZikIp45d|CT?;k^$Ris~1HCqs?z6TDk$^Ls)7pwsWQ3BnIPyrr6W~W(^Y4dgNF!2RedsmPSim%Hr8q9d7Ii@fB zvEhrz%us8al&L`&Y%5@N35#Nw33e5$W1dTPJB3eb6Jfkga<&hvvJQ2g#80%R_7<== z!FeR!*f}{-h)h8uvkC2agYkhMdo&B?S>)Z z`0oUMih8tLf$gq_nErh}yLpM|gDr1iLw{)wsI#mAKwnj=`s3P{uH$?0<;L(MHC4ug zQy7q5SlQ`fDFsLHwicf{=hcfRk?A4r1tB@PMh6MWAah=${qiBK=S%*FKZb-esJhMSY>PS;3w;_YY2!?Mt`3Hc2px8==LD8hsb(SzRpxON#Go1!v1gggr~d z3dPkZc99OdVmjW8Huw29!a}p1TUssbSwDT;**Wju=!qRBp+`GzuHtOzci5Etb#q4O zW@lZBY;}Y%C`c@;Vi-fZ{e8sZ@6j_rbW z#BUT^N~RX3VYSb+P5`060fw_bO9?PgUs7IG>%&DK5SH3udq$U{K*md087H_KwpKbv zY8?!5vnwICKwTl|bHf%D8Qm$@TIPBhsD~0&7R+$W2srF;M874%6M8qoQUGm+Nhk=t zr;rR9OgONC!yTHD1+@=SJ3{I=bTbjd72Bd9E!IJ#jAsO+@3vYd1qsTIVN2^yyPetr7=8`3Xzf zw>?iQfaO&XPdPB*3>hX4nRDd46S6$9@bzPEs^6BdBQ+921WBv*!sP|}!6ZUS7JN)9 zRigJJ_uktQ)GnP?$p?f*6}=}d>}evDDWW8cvpw%68FQ=2m>48i1q)ml<@=c|S2jeU zOc4N+OqyGEk`_ynj2D@8UV+ezUC;h8cC!$17(0{um#;qcofO+hc(5;X$U#U3QI^0g zHh@+(>SvdAcoN#yr-cA+#`9Z)+DQ!kC#r4Cz>$X7^slZ&=tt;Vm>EY_iX>A{C44go zkWDKiK>ODg++vajwAj>Zx&1n#UrKkOf|?;hh{G?Du)JBIRl61mS~@DmiPSnHjJDz+ zLMk_D5gN#{~tUkL@A{8q8S2%EDL)z)dJ?#7p zOkg5plw2ewStvh&e?xnzhGHiQJBrB|7eyp9LfO}xAnlVXj^Bg7=7jqMk~kN(y5rlKUCnX?GV1|Rf-0bXZf<6*ye_8+ihkE#$gaEbr`002ovPDHLkV1g|J BMDhRt literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/playButton.png b/newIDE/app/resources/examples/endless-up-runner/playButton.png new file mode 100755 index 0000000000000000000000000000000000000000..c1f3afd3dc0c397aba200194a2f46e5dd2c8b4fc GIT binary patch literal 2025 zcmV97d3bx(ZEtF8C6f6zx z&hAG`gwllL2ynnWxIp@3Q+;bo2erGr9nDmAaT17VGn{3-la21Fa= zTpoqa{+cQJmwXu;4XB?H&&v^vHc!Uqu7VM71F1gW&K12b4951lXiqbuh5!a@fgR~> z(;hJlz8l>v4c3)!>2@LHmYPQWN8cI{^zBF@uH7z}_z<&wWsnZ?m*ocyX1pAU>X-ds z_;MuGT0dXPbPE9Idw^cTq-bM;ox<$s z4v)e)^ag;vvL>p3JrVANj_56OU&Mm`*c?!2y9xt#Rir1sJL{R#_&fi0rtQwk3ggBm z49HfXOmjg>V@ztX8>zvsoR=y zI5M_7@e=@07xop5$O^By>c?0=GS=EW1lj3|e5b)=gSwlk9%Be-i*-1WzL`#t;WS_d zH@A92ab!Mc;sbRsY>v=j=Xy?HI^C>DWE&W1(!XL-ZdQ%P*1oDY9(g$XdBzc%o7RbK z)1!q=Yr@ZTD1}UIRNqTBsMv;NyUFJ9=NU&Rcfvz8?YK(2li!6+z!wiMaN9of_L2G~ z8vtP6;yG);49a8~rX!TaS_z=iq1@$ni%lHS7N%OY?}kIesbs767M%@wTdydZHgHM# zoqe`QzLRXHho&P|Dz0X+{dCy*F(%m>d0hzpD-N_rAz#TP-%(+VbSGQ1ZGFdPoA;4I z+b}ODTP`U$^_K0KeR_?vBfih~i7nZa&^JdWtIfb!@XqK+#b3#|wgC~kr4VQCYCJm# zynPM~$)7hPLN`0>Qe=}6!k{Fv;D(FEY(#2rg}iYF5n50Ey{z&0>QZ1Nl1; zq0f_3BBxR<+6uYDk%r`iv}|fq1;%&+5CslR&VI|oz(6WE0PdEYA51NdoJ_?dP1$F{ zgg{cBQr}~XUMMWK!}g9YMS-j;M3}QhnCEdgbG)N@VYwF+2Efg>dfI+xIXuM8&I_>U z?{UCYR$iIvg^Q%m&9<-@=bf?v#;>Pdpv8XA4LQXNQ!v935%@6Gk^OoBmGV93<#`{T z!eRhz_7PD~N`qan2ax5yRNdZv#;ae035RX);ToOB7gc3qJG=mk^&T6`ry)_kZBFA^ zhaGNxgbXk-&UB7R_B&0M>-=6@L8!%{KWxL`?0ZAV2ec-A zJ8pPGg${{%vPz5|}NM zYZ2{2l_GUSh)_8`O79!)QN)ct6lL;?{1B7W+ z1Ze%*l3N6+S&R0p&hFQd{ZhFL0&0Z_DGonG#B!;OR&gySXzHjocBV%d*=TDHM~LO7 zau=iq6xr!;<`|fejX~B-P{+s03UfE1Hbaq6nRqHI#O6KMquQ3c7;4e_1a@-^Jy_Uo zYXWvmIK2xiy@AH87@fSwH<6bkJZ9;Q&I!qBvng)rZM;w4#ZVA>#D)1yG${e3+{sKk z#!l>972eB;(8}7F{>?##nG>jeV#V=1XmMwd?h`2D z9Qa>8b8-uL_J?Q0#afXH6M1Gv5tI#n=mP_M&cr&3{o&cawCDmxJ`qP!00000NkvXX Hu0mjf%6`Fg literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player.png b/newIDE/app/resources/examples/endless-up-runner/player.png new file mode 100755 index 0000000000000000000000000000000000000000..d9e902a02353062b2dd0a82e83b9c2723d6197ad GIT binary patch literal 483 zcmV<90UZ8`P)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000pP)t-s00013C=i%XAmET# z_}HNM`1ru6h?sa-_~5{BP&g;WUG zdsrVP67Pux$)@RF|N8j~d(B6M;19I0l`rraK22N%zQ-|pFK}WrF9PqMk6mr#1$@Ta z*b}hV#&3*v=L;AULQ2+%AE2)sLX7jA_R=Q0;zIzd7*j$6j|Z-u@nJyDrC5arBVkMabJAOiC|>QsCPpi8F&iU=RIAAtC>;4l#ZDFvJ_uq+DL zA~NfY56~KDn<#?0PGSInN3m!Y&$(7+W&MD8E~S0OwTg8Av0Mf~;86t-*CX8-9s+3T zLBg>Xxd%W@1jp$fKts#`m~rO~ATBaZMA`(#o004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000mP)t-s00013C=i%XAmET# z_}HNM`1ru6i1^^ZI8b1icvx^yI8bPCC^%5Sz_9rE@c;k+VBhT(00001bW%=J06^y0 zW&i*H0b)x>L=PCc0NDTl0Sie)K~zY`&C^kh!!Qg6U{f#!QwW7n7==(Mg-{5EQWynO z7=>Zj?_^!4yH%OpdpJw2()d$iw<*#82|f$>4*;J6Oe_#QsEDu|j9JY0fkg;(^9m<; zX5R8FPO#^;0lUF_nf<{9cEKZU4^FUcFv?Bh23?G$S<)CdfqgHV#w}&Z>Gyvy1%vc_ z=6v~ha%X_hW+@DiZ3{oZ>q%uH3Z&;S4c literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_fall_2.png b/newIDE/app/resources/examples/endless-up-runner/player_fall_2.png new file mode 100755 index 0000000000000000000000000000000000000000..72cfdf3a8afb78b8564bfd62009d556f86c6cff7 GIT binary patch literal 461 zcmV;;0W$uHP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000mP)t-s00013C=i%XAmET# z_}HNM`1ru6i1^^ZI8b1icvx^yI8bPCC^%5Sz_9rE@c;k+VBhT(00001bW%=J06^y0 zW&i*H0b)x>L=PCc0NDTl0TM|>K~zY`rPBei!!QT{P%K~p3$YLj-vSnDAr`Pu3$=iS zZ($k+X?wT7pB@e6F4=Cp1Cn+CXCMR-0elV!9|3fLj{qWB4@?8EPrh)c{|3GR$batU zhB?uBY&_aPu#a06tt1UU+TW1_@yKVvk4I%pxgZ zXR|}Dt1wHU94I7q%2mXUN%H{uOX@SK#jr#K_R!XvElmSeyJr(=peim@>9Rls+OLZS zS8)Sa?io;U@Oq`eIqAiFeHT~{?Y;6qgM17i%71}3BeBe@z__*{00000NkvXXu0mjf Dalf`V literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_jump_1.png b/newIDE/app/resources/examples/endless-up-runner/player_jump_1.png new file mode 100755 index 0000000000000000000000000000000000000000..4df519d64ad50fe0b65f8cb280a6fffcadb12cde GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^4nXY0!VDxu`_DcDQVPi)LB0$ORcZ_j4J`}|zkosw zFBlj~4Hy_+B``2p&0t^w85I#476Abn1r`Ab2M%ob@#Dk)|NrM)_`(a+!&nmJ7tG-B>_!@hljQC0!Y{Fl z;UH0_aB~& z%2QHXuXuf4uyln^^1~{P+6xsA{T46?9OO^(`FmME zu0ee1(KD-RV-7JqNZuHPl=38Rr?orOA9#YJ{3AJr|@boFyt=akR{00Hc^RR910 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_jump_2.png b/newIDE/app/resources/examples/endless-up-runner/player_jump_2.png new file mode 100755 index 0000000000000000000000000000000000000000..9047ddab90cb4ab28f368fddab26b8241daa17c7 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^4nXY0!VDxu`_DcDQVPi)LB0$ORcZ_j4J`}|zkosw zFBlj~4Hy_+B``2p&0t^Uvn8WsTo83hFa78U^s2M%ob@#Dk)|Nn2<1ujw~s@&@>a*!&C-q`3l7a>JT7r-zi-$A|JX?#DKq6B znqS~^4VpBEbjM WHeSE=u0aaueFjfgKbLh*2~7Yc7o`pW literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_run_1.png b/newIDE/app/resources/examples/endless-up-runner/player_run_1.png new file mode 100755 index 0000000000000000000000000000000000000000..5053a86f9507fe21acce3e64521ccbff406e6b32 GIT binary patch literal 502 zcmV004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000pP)t-s00013C=i%XAmET# z_}HNM`1o*8IGA`?z^I7$;J{F5aQM)mC^%3!P+-8ou=x1!|NsAGwJo3k0004WQchC< zK<3zH00001VoOIv5S6kGEC2ujI7vi7R9M69mD_T|APhv!C72Q*|NpmPQ5l@p9V;W? zp_6^UfZ2lt@_5@m`iLP_q^p!#59sEmwSb@Iw-G|XxgE1>0Kbo~BUS;9LDRGKRshcI zy+0pt{Cuc~)|fV00eB6XdTq?OMj@at?GR(Mww97$o`48&44drMDrN2M#wueW;57l~ z_T3lRDq~ptivh<3ob&#x$a`a0_CbJdrxXAPVcXbcJODu2iwJ>2!gb#7mxuv?Rz6x& z3S?}W4*&wK*1igmjzB8&0T7iBm5}!_zWr+z0$TaTm{P0?AtmPCVgOlibg;unPc}jb zh%x8%txy#sW@$7ZfQ63-5M)O9{S5;l2DC-aA%$jch!AqoTmS_MfOBW~oG-3Z3?Kvm se004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000pP)t-s00013C=i%XAmET# z_}HNM`1o*8IKZfg_~5{pcvw(qaQM)mC^%3!P+-8ou=x1!|Ns9l?U-o*0004WQchC< zK<3zH00001VoOIv5S6kGEC2ujAxT6*R9M69*1?j(AP@vlVGuS6#Q*=>rR}1iTn`Y~ zIi(Mlmwqx6EPXug+_}>glVjg8Mjxo<8cpDDd61X{zSl974p8f#kPgsZp7!wFOPmDS z>(fG-z_+>x;f^Iv0-pnvT6rDbzy+Wl-WV1|taT1Ublrg|pd7WmJR;5+njUV7AR#5Y}RqS^ys;zck)+c>sof zP!<4u$4hh^AViL%lb8ldc!^kLv;kh?7z=?xGyz`W7*hgq;os3D5Z_5T`wk+;p--O% zP(4qS84jWep!#}|z!>^Kj5xT@;W~+E0$d}2Qcr29z5qbV0B6pH`U0R1gNON#z%O|H V7M;~vyb%BZ002ovPDHLkV1hRkzuEu* literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_run_3.png b/newIDE/app/resources/examples/endless-up-runner/player_run_3.png new file mode 100755 index 0000000000000000000000000000000000000000..ed46b582538850d84beefb8d9aa6ef8b071725dc GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^4nXY0!VDxu`_DcDQVPi)LB0$ORcZ_j4J`}|zkosw zFBlj~4Hy_+B``2p&0t^w85I#476Abn1r`Ab2M%ob@#Dk)|NrM)_`(a+!&nmJ7tG-B>_!@hljQC0!Y{Fl z;UFXGN3)!acu8{c?@}%s-uLE-(L{@Or2_$E&ulveW z8!#zbcj=tI3yi-uU6~^q@~J80^(WQ$%yT!`%wPVIbwbVoA9IImvinVTuuN;sV|+dF b_(ASg!zEwea)d1d1_OhqtDnm{r-UW|=j*ak literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_run_4.png b/newIDE/app/resources/examples/endless-up-runner/player_run_4.png new file mode 100755 index 0000000000000000000000000000000000000000..33d9b0a07ba857386f895c4b5447da3c8c396b93 GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4nXY0!VDxu`_DcDQVPi)LB0$ORcZ_j4J`}|zkosw zFBlj~4Hy_+B``2p&0t^q0UWHs9IZhTtic*U2AGs+P26#RrPAG(n<~E^p7(6J z%P;$@WmkgsZCw-9x#HQuj=h@_j`_Q?)IFVQ^x#fGm&lBt6F3cuk60SGAG!Hw9)sNV ziwSe4AGD16%C=>p`%XSL_Ve3!-4)}PZQRUUoGZO*D$57HJ@0i~awqO*Hi&yZH?(i@ zl>hpF*$zxsO!($kp|y)|gZ#>}XMD35S|=oXzn!-@Xn|n4@cqKC=Z_s|H`z03N@?qX z50S+md|VFfTA0!yVz4{eSx_SKTSwyzt*QrF#~)8*T4c5U`_Wa32c}r9pHcK>7so%o kKSuqIou4FXcGWTTzCO3|^vUayz>s0^boFyt=akR{09D1hhX4Qo literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/player_run_5.png b/newIDE/app/resources/examples/endless-up-runner/player_run_5.png new file mode 100755 index 0000000000000000000000000000000000000000..454d64cfb4bf9284f6bcccee9e52f6ef4f41718f GIT binary patch literal 418 zcmV;T0bTxyP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000mP)t-s00013C=i%XAmET# z_}HNM`1ru6i1^^ZI8b1icvx^yI4C$!P-t+#z_9rE@c;k+DB4n}00001bW%=J06^y0 zW&i*H0b)x>L=PCc0NDTl0Ov_WK~zY`?bJaP!Y~X5;8^%A#6m380v2Ln7Gfb5W}y~l z0Sjm#EigC~HnIx`@^<^bw`A!yqJRBt0nCg%=y9(kSmSqM3%uk&2K4-aGT^qN+x>?_ zZUL+vz)A4TB{04Qj}EwB^gZbJM})#fMr+ytz?v776J>!aq(n&u^n9Asm}QXf18|*m zHZw{BKwQI2o&xPTMVMXHY53Lb0VUSV?(MKR0f@M5nYD^!K@-Ae5|soRZ>=r%{s*)L zYLqR@_^kGTTD@8qX<%os2Z7CGM?g$Df9kLU(A);S&;igV{nTOzu5V4M@9%+C*8l(j M07*qoM6N<$g8crd!T004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw0000mP)t-s00013C=i%XAmET# z_}HNM`1ru6i1^^Za8NjycvvVnP*7-aI8b1~z_9rE@c;k+oY3?Q00001bW%=J06^y0 zW&i*H0b)x>L=PCc0NDTl0Q5;jK~zY`?bB@$gD?yR;8=Jq#6m69!Ysr>Enoo)wNMLK zn1yLrQU=={AEnvt-*WUg?tPB7DG>eZM+Go5{Gi5GUa-W6q6KO`Bd`a2FR Z;0aH+uX9L7#y|i7002ovPDHLkV1jG8u($vK literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/endless-up-runner/restartButton.png b/newIDE/app/resources/examples/endless-up-runner/restartButton.png new file mode 100755 index 0000000000000000000000000000000000000000..78774ca909be593519710f968f9591dd2f01d6a7 GIT binary patch literal 2385 zcmV-X39j~uP)^N%`2tcYAEp#BrR%pa)oaci*auzKeipa zh7D|OvY%ZnCEX%``Iu}0`&9ExEk*atWr2f1ViZ2S^Wit+i9vjsSn^Fi}d zJR+N#tC6>t^Hd={G`d#@Mhj%TWL)Jiz5{~JX(DU_8@oj?`M17f<}SXP*}6&Tz1+@H z`_D2497h!JzgzLBw+Y`7$X?Z-w_c5t8w%!c^!mQSe(c7~ zjs3;G-f7uJuV8k_dWA`Ox2iN;`|9yhcDes~ z0|=c>FJcGy$gs&Kk{pNcgC?D~o+ces*^XozN$2|W1`x`f@K8-Vz9#QPPFwuq3{v z6%bY_dka9kl?Vh)#@R~8cHXZPv%l4%0Ks{KUrZvlYzfgy?(z$&?7X5VKqG{s?oiYD zta9!**jk#TBZ7#|_NNG>m56uU0JN=A&i*b57{>|ggrhr17zCB45TaIghx?9N6cn{% zd}QGgE~UCs)9^H#C3h}O?=jEGDXE5L9DF2pCD6#oCfwbGJ`M6*c>1M&7!^7^>`nc{T!CZiRUO72pN{{5k0Tbw)}$ za+A)pc{&ZN`qugcXcUBiaP}YF>d^a2IkyZef3=VHs7Q&c`UlPT=sk2vON30Rltw?*>sW+FW}UX9}!D`n3|wMmM0#n26zMT2Z8a$wg&I|2-6g|c7W ziq_w!rtDzp%jIz$?<_fW2sE?+v4eB|h(C|g(bIe3bpQjj)F{v~&t|iZ1!yGy5!K;w zd|pMVO-*3Dv)P-`vK%Htx&gyc+7VhMMJKjE2gHr~lKt05*J+(;{7lCOC12CfOmRot z)U4~6aw2t`5Y&qe0ZFhU!~@>f{k+)8TXaAGKEM;6n>`ShP-69?PRppEhH_}~THi@K zV7OcTM405ZYH{I3ag3dI7v*EoEhEl%XL`&>H3syP5O~Qx64VusU|gv?@5GZC8haT( z|Mc;nfv8=sl+&Tf>NH*=`fkLWC(!d*6W7T0bQ)B734@^4K3+^JFXvM8Ot&Re^k8Wz z;qx1QKa;85R>^o`e=&P8)hDVPbRa`^0xxxME^mGkH>cHYT#olYRA?p%gP{8fueBd| zU+Vzs2Te{zlyY1;(VJRpbM_tzwr>&SzQVuBO3C;GNwib)ui*JJ?1fSpB#`{=%yIK6 z-E7FGLOLOa3=@WW9N88YB5ytP;*zMYUx?Hg8ha4}ufdC`jw88bN#D- zfO)!|)jU<6O3}Czk@rbe4vx|l{du$D`a@fd{?_)0ZX>l!n|8uaRoQ0z-i-j+Zy>qF zCT%zJV}Zgfl>O3m7Z}wWBBVI{1-F(sO~V607fh;-d+jMkItE4v2z9yXx(ifC6xy=^ z<|W$dR#WU&u-C2?a%*unLpz~%;^|tUu<*JuRk!9|#B1x5u+w|dBW7(38FpM*{9`(X>5xOpy5v76oS zeu*7gl`dGZbxfiF)zbAeV`wZ$Tu-xu)F`Oe*i_k3QRLPWoKtqJzn+#1ePO$hDO4%2 z#*RclNCI8S(M=Iuvgm})#CvkFh0HI)AWBvM?5>Kc*~9qnjD1vta^fC*gR-NYbf_&L4TG(J=7iQhb;a>q+bL95carJ}H0+-LzkKEt zwblL)&!`vc?Nl!{&)i)^%LYI6fdM{eVjs=)hiBgbiv*fH3R`Wo00000NkvXXu0mjf DxXhNZ literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/Audio/desktop.ini b/newIDE/app/resources/examples/space-invaders/Audio/desktop.ini new file mode 100755 index 000000000000..bb9f3d69c843 --- /dev/null +++ b/newIDE/app/resources/examples/space-invaders/Audio/desktop.ini @@ -0,0 +1,4 @@ +[ViewState] +Mode= +Vid= +FolderType=Generic diff --git a/newIDE/app/resources/examples/space-invaders/Audio/laser1.ogg b/newIDE/app/resources/examples/space-invaders/Audio/laser1.ogg new file mode 100755 index 0000000000000000000000000000000000000000..56ad23de07f7704df9210eece99e8b682a879b87 GIT binary patch literal 9315 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/Audio/lowRandom.ogg b/newIDE/app/resources/examples/space-invaders/Audio/lowRandom.ogg new file mode 100755 index 0000000000000000000000000000000000000000..ea39f82c74e144b15fca8e768d5f418556f37d0c GIT binary patch literal 5416 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/Audio/twoTone1.ogg b/newIDE/app/resources/examples/space-invaders/Audio/twoTone1.ogg new file mode 100755 index 0000000000000000000000000000000000000000..82653ade96f46c9930449fd14deabf9828043c06 GIT binary patch literal 7362 zcmd6Mc|6qJ+y5D39n{>`A=|j^TZlr4u@5R^Unc8h9otySoti=+B-=M*2{AI3G}b7| z5>dz+B2u`KB+*UF^BLXW=lT9#zvuZquixwW=Q*$QIdjf+UFZEd*LALQo$K?OQ@*~o zfC>Cv24a78>ZA3SU}CVSkZ>=55`zRYuKL9xxBmKVhMi)}{P)6`34=z8@YH`C#Qyx( zq7MIsqX@B`{6qazPKEnQ1o?Y8?4wIqNT{o-sjI519+8kcMGW>24JVKY!4dKdG*0NT zv#_%=(F+X;_Em?m{6Z4P7&$;}7(jX3$(!clhOtRPq%1YlT(1mlQdztJ#=L;UXIr5? zksny~pg|%YDQtUMo+THThVvKlPG|IxmKM?xJUX%k-bh!AC*!vQuNyXs#B)<{R`Ok0 zxMU2wkZp>5cNPwdVUvzHptC4qn}(G$Y|bZDHss`ZU$2PBz%EJoSYgcN6Ed)DWws|V z=9)Ro!H;?Bzd>J@e^8V1rBw5QtTabcz?NRCp!Xc%yG9HI%- zQ?&zBx}l!r`$Y?)${5re(1t|z8=7D_DfA=*xnz6MB^V6G&03P)6!-MMoUw<3{c_tZkZ;Fsp?0HEXfaOUWQ zznet#Rg_n+e0lyAghEAWNwRvMQr&a)enzueTQ{JyrrL!x;;OFav9xX&bMmf!u#_Ko zVA#dKx?vnEUk2^6{J#Cj(Dtwk`J@|~GLRF|)co*1`MX6-`{sn0jANqvjAU#U@gKE^ zq-&OCYys7JtNu}|Q~dU0*?8A+!pt_&Q!r{~C-Tist- zDMNWbS6eE|JdOFMni9|p+igU;!=%i@rJiLdS!8Nh*6F?&(Y4+(w&AlLu`_XuFqx@0 znar}Dh_IfFuy=02J2w(1$BFJa#5X&!|577G_f<3pVA(va)I7P=JZ(WMLkd=mt^`1c z;Z1VMceK(L%rm4ca!M@<-#eF_4WRnQ(C#wrix@CO7)6fqR-XD+zT~ZT$?w<_f=dZC zphhl_zS>gr-&K`;2TuoJ=%&cCn<9{dTRl6;10A4Qt4-($J{`?Ov%*-b25@p z@RCSb8qQa~`%$jK|UZGX6T;U)Ue6YIK^jT8-cgcz)x)Ij%``l+Uvcvv$wS;PTJW!=jaY<=#ALf z4{F$tK|?5ZG%#TNU=IWlZhmi4u8hFP@yt^ZQVq9}1 zi-A08hj)&GknxV=k%Jlx1IudK@a!AGq45 zw%TUX7hx{ZKb8unObqa&_AFMg4!3ZsXSj85L4(!E0m+r z0%){q8coR+;!>6?sItirg<4IaDfClmQ*?h?V-Sr-Y^AO3(uu1r&`O9js&XDJfPqX` znr=A^t%`w6S<0nC%Lt;-6kQ9;DGcPrBq{{1lt-oY*t1m9fa6{OwDo-j_m@Feo~D27r&sOmE67*|O{JesJX9C7 z*WyR{dsPb4bmhGkXjLEkYC)eR@0A7;-^d zP2x0kP9PWDCP1W@8bnund)K4ZV~qsJ1)-4YsbM_{ouYB;v3jC&4$-rbFb@eg5nQ(; zC$b~mCt?>S2s4W<^bh^?>OETJZsYo1N9bzJ1_A(7C;;rL#aw*CbRLihMTHd46gBo# z+<-P)u}z=$l7!EIAv-$zxi&jGD+8isWvMSoWM$ykp`HsTIx7no$N~VL78JK$70KV% zVt5OTYzIKxf)ixVl7K0?w?!dj)e2hU2lJezq!NEVXlG)9^6?NLk1rM)IYMJ9q!${l6RY|BCUS&Zzi*LH(yQ{=eY=7YJwn*QWZP=!XF5 z$)O-U=AWKv4mnwh4OaeXejHM55#>E(At&$kT>GgA#9R{2 z9Ba|{Uqyswp$u^rPlyO5RhH;eQkytsXfw=KV9Y(X?V>CGI{*a?M>ofo!m*K#G%w73= zK3^(}0ON2%DF|64rwBI?Z?S6}a0_H=Yf{ zjzL~=5;1^rXlcz~m7U#)Ka^i&Yqui7$gBVtn1ha05s;LmRMs}P_YS?9Ti$?DM5qXW zuK;N2lM@pc6_iv|)isW4>FECZXB(MJ-j_0fS~7Y6!;HE1!afNwKFk<`-|W6kX>q`` zE?pKBLJ5nDqD9H5LqfvBhlIq%qufF-5yOaqz5&64g2E_al#sXtImSOQBseA{niO^c z*7b_E$Hu@zT@=b$vpKVkW*P@=1rd^2_zgjKjL_?@2d!_cH@Ii)oXk^ z7vA-$iBR4(NUFDdtn)J7NjUOs9b2q5b|`!KliWP&0}bJNoF#)2Aznj=tu2>!0)weRXKs5vvK)*ti1c_B9WArSTK#v zl{(6K5PY(IKgV^c@>H2vB?V;0f*M>|%NJ9@;e&U>(cxR3hGZ0q8gQ4k%Cd8Trcuocq#2W33;0wHapvlbi9F_{*iFf%ba(@z~t! zQwKFb*XjP`fgNEvOg%sEXlUME!{p$kULNn#?d~!mLj|VSqc%c+j2fIgYx`-EaOv2i z$jrLIh4zg``U8z=fuM!B9c|A=thwO$Gyy|Hmi5v>PrmjY>^D2}_a zQ%aH9r%eEcT<#1a)YFo2KqTzjc?3;wZ@YE(t(9e5k`FtAzN_mv5jnx63rozS`*>}n zXC5Bx7X;gQxP+Mo0JZv@%&#jVVb9Azy3_=Be666CiNO^j$a~IgKL?Bd6hdBCag;ay zefN2n+cQO!)S5THKp9KQr^8Zuni4~iz?bbqn4`sKBOclmj{opSd&U&qNwzb$nN2x$ ztcVqEDS`8rNi;7Jo(m8oh&z2zTJ`97G{Ki$AGs1M&KrUgX3qK)qS3ckmVs>EDs^Pu zGgkBUSPxg6m1hP)A3|>JUT*#gug(8td0%xjIc#arx3p{IToKG?e*4;N=ay%jhP7CW ztFmNla`SJ6uB`qn#xs8&ynwzM2dwSQ-MycilZ!XrhreSMcI)}^*8|60`%8i&$G>_;%f*i!0jyw~i9Cn8 z3k%v1#S|lN4c?ji-Ga9va0SDlYK^`HHn@nPUiu1x+k|e(;Z&bI<-TyJe{# z#%jOj$7~{x<-=!a%4^OcNA1^l(fPbJL<=jaSu% zd@n9m45)%uh4dm=J9C}~69S0sEq*^NYB^^1SLpD8y>}64*B2r9l*YT&Xn6aJf2aZNM?YfVYaDIsBjmK1Jf(Bddul}& z{s03`ygIKq<81s`0Pk9YjnU=oNmA5?vm%)7CG48n_(q-Hl}tWuQsnaKYwZ*0Qqfuh zV6`C$k+AhW?UJtZr&#m7AWj)mzrl$_wWnyMlH+&&8eEGOoO$l$-`37EVHF>z;wFAQSHD>qj8{~z0Z|Z=y z-tVy%?pcOhEDNpDy$V>hAWms-7RgPWwXiLDv-NM9H!S7QwFOBs_b;r#l>=oT4tjlV z?s$OxI-99YD{!#lx^UfRUgHdNcNkS@)8pPjbFzZ0@+v-SN(g(rMo$yOJ?r zt^j-Y0Q9nk>YoT0T2?8nNm5Tq?S2AA*!xLEllr}tS9eH+ANm&^Y9*OVwA&7uDsuR( z8}H4TuoYiQA$Z^ZF?On3XJvp-HZVua z=b@0rljgG+*Tc3jxe>fa;UWGsp3a&M@U8<;R%Q9NY_?$$~*y8C?#E;9O}$ki@at4OAg#B*n{m zL z(Sw&b{q*+1n2YUkEC>U(oYcM;P}uwZLDpdv19Q}g>T^|6QrWI(ZuVKhsl|Xt71KXo z^A330%x`LKl%(D+A8z(>?lq!%&|XIM3$b1OQLS@seWZKFs8m9c*UJB$;%qSL<<0;z z9qTVOhfb-4s}_)1H*U2vS=zJgJ4c1P6ddhoRc-G063b(6-Xv%=X!IlrcdhL@e0lU_ zQ!@32Rm=0l)@fS)`vU(Gv(Hk;52-Hq6dJyCTXU8z_myC^SvPr=Fn*U|b6+`fWho@W5{w2r(V9ZVzL%tXA2$s7&e4A#1xd7pWsaMiD zP`QX*g(nI;gDm~|NNtWg;32MO@>m0NO54XN(h)IkVeaUU@ou6RRT=PbD5C!e3t&1& zY##i0zmRP+ef=fc=`2V6kW+pz8NB}b=Fjwr@YGRfp4#erZ6jX*^UF?!^X36;ZUqSt{Q4iajc&$#i#$qU))*to;IEoOP*17)vC8R|{ zy2aw^+t0JEUo}r`eb776;a!u?63S}u7;GGc6~T%QPHS;Fce||W!N{#ESPn^(`#3xM zR47Q!A$}-HT%3vd)Y;?QO}8N~age`{7|^;DP7Tl#51S3Sd%*#yx=}ReV14ZiA41nK z*WlBm3fN0#BYa9z#b*z`a|jTzqB6{gZkvi~V;N#+2sQT}_Zc{7sciLfdvmpq<0l2M zD}O!32mUcJQRrrU`{#>5T6z>kCY1MXn&-04WwERC?<)nbvH$dTc{|V^t8491aM1LL z;kqxsqo;kDB=%DA>I>&{+4gDgeaoW-oqz8)dHqqN{)ayN)*=G?@zTjJ zX&9L<1gi>5$g|_$k8#FYqE-Dl;Weu=!@|e5k9ruMoMKYoH}I@*6KBL2{oPjPxLfe2 z*Rubl31cP&5EYoAV!0^F-rO7E)1gn6WJ;RHzqRR6bO&c+_cE<%NqX(yDpgUVB7Y+K zCd{%tl_{*=+p}8vu7A{p#Z7#8TzsnKr>tFpkw>4VuPOK)Id zxQ?&2!!XzLC$A{*4eO^IzU(8mJDa~9Qa)A1J>l8;Ijnw+X6s~Ic=!XglG*>_Z&f{Y zTMZ$mqvY1_lU13Xk@w%Vm!4k`&*p7W;z!XMn>_DX-wQ0t>icw))u6}tJQm@Bsq!~w zX!d&iINCtz)q_lF`5;U4ApvY~x3}itIeD+{*6x@@6W8!U)-dMerbVl2`sPB82kv!| zXV8NTDw!|Zt7HN#_=A#k~K5FRI(h6G&F)#aR3$l81?J{Fv)>M^J~8=8{Bmrl`j_KySGi9)5J= zMA~)ffEz?kNy0!pR=s2hrdd#Prf|ZVm#FvRkyq{)a?~>Ul0i6EdNbOS4~X^R2S}?; zb7kG{40(mz9f|~-C1Kl|#WxdpQuyYzS{4+y-PY^wbO+X2zG4Ds z%-<>|L9uav0Q%^rM>y<-Rc$#x8E zG11t-hDfb7H5yqNxH}Ked@)}ueER8QGehQnj}u>C)@ZpLK{F>y3Uw#@y1#oT9DZTT zfoVv#c7u}%s0n5?KtA-yz45jVSK|jHyGdW=qP7&h#PikRdq0~tHpd?3>O_-1%U~9R z+N@9>u&?X4jm*E7@l<`B4W6Ob3~et|OW(RheFjN74mxtfqbRkupB1*xXC_?Jti4m;_i~h3_FQacBP_=yTT+Um=BamOls2VnuexAp|A=p zD=JR2$=al@v|%z>J|vBaCMm@v(6ZoHsZ=BdM4%|J=wc6I&=OP-@o@bn7=~={gTDVK{!{y{x8BRSXV0|H zvce67@XHs>XX06ZPsJ-lO2t!w+OOOFgYo4?C_a=^;h5on4*~9QO z90%*Fef@7A`+vS6ZwW1)1Gmn@=XY~{|G*N2u)E=0v24ljtLJm!TpgT$@%-WH`2#>8 zT<@-)-}l3L=HfFyod5OWGamP?@XQ`KXYczj=fVGS{_k<&5p>C%Db+v!caJ5ZKLY&- z*?kCAW%@(!|0%2gympBONT>&0Wd8HoqBKIk{t~Wt|L3(}FG5?R2>s;fe_qq45V|6Q z(9r91mOk)@AI3lv;O`i=`;s}5gmk{*ta3(;>zW&CKQnYs`N?k*GbOHN_k2A6_sb=* z(wc`i&U^WhgRh+Y)%V|je+)&Cp-q-)`0x$#%Oy3sP*Ji|QuUa$AwKR)osb?Xjb|EC>%KY~(ifR!Hl!xITRw2nS8l*so zB1-m<$RJ6jhZRuHm!okG3!r?+fzil_r?c^-(I3J&tF+t~fFY6S>63_{-J;Cwb}^-9 zSHR38A3h3WNK7FF^x&1K16m6(4#``EsL0eHAClRFStnc)kSv&uR;t9C+&t3YS!l>h z1j<1|@6{uzF>*4SuZXE-mhy0U3=6R`7K4Vqd@xI-e3Gb)g(i3mE`uFvP|<^sjKy6> zA6OW|C5||Y7=(B%n59rr!PLl+f{`TU@v0n9c}FwwLymSCH9#K{FayRF5t1^cK%T=n zt;Xj`#qr@1hyyWd7y=84>Nw?87(tp=A`LEbo5k^2V z3y_71C|Ml{lc)kfkI@4I`0`atVB|?P(qO?3Xoxd@7gxlgFQydIGDSqVXe~S=3-O4d zMc_|vg>lnkRUXp*P!#TgDjZIbOO%IGNA=r0nlws8MD{dWIFc8zkN}?~?Qqh_C$Tz+ z6bz~XaYIX@=*g9bVSr%u%iUc>QeSx#1dL}%p4@0OastvAnLZlir$9d(qS0eSIplB% zNw`FX6FWj|x%wbdBgUt3)zC%EQjW36p#bX+S2{u+!R{J(lqlu{j8D!Z9K<5cb! zZq&{ii7cecA_yF`gVH62tF$^Cy1w8@3U|xH@TEZ-AFbmxoXXVfY6ipWa93nt6f|fO z4s#`Gq|H0r!-z<0G(LnQthsq{vn^Gff>@oo5~VFR9IfYAb@H88!%4!LObo7E)r zA;iPOIKwC;l@2w+M`C7I2p+~OGFu8n?JEy6Sg6*PDSF(%3d{nlLtt~jRMjXzg;)Ue zgyhx!eW~gQ$RJ75QQXh!c-JSkM?+AddI4l_Pvxwm&B9l^r$#AqP7)im9 zoFEI4ku=R?HfV!%Ra5oB2Px!cxaJwcQ+XGQPzfA{KZF^;6sz*WXfo^67~u@z9uJTf z?IKc96^k@(BMg>BFfBZ4nVm&A5TL=+!&U2s;j~OX0K$-gJi_R1V1iE}Igvu1oCNNd z0`hpYOCG00#^<+rJa7T10wrYy2VeC={s7LIhf$H?F0$^EBhX9EXmlAlFhmdtqA-oT z7FvOGaBJ{kj0To2-=CtuHZ?99Gchh;fhh%{yMG@Pkpuq_fPYa!mztNcB8*a{27D4e zhVyU+GpKriVP2d%lpy-K>YSi-DTM}E!^0v|VkK+_l%cBtnf(6s0!f7zIlHHvR z!xWc*3qa*jhs@M$^Hr6a^9Nzfs#btx_)u}4K@_qkB~JLKv^slOBp2P#41WC=Imfsf zI__jVX_&Q99!Me+DGx&62rn`P3U;R}BoEGz5%6phTu2Qa72OO6ssh@;(s&q&9IIMF z5`-Nhcc%N?=`4sD3#5?G2Xh+V5rSu`2ao}=L9nuL9_JCI1+G}8Xw=YP%0}S9m*ylL zfpUVcK8ugSpXx!ytxI>602C%q3-R}aFd0RCVEq6}KrmS~3(5ds5J$9tMXRW9Kd-{DS=F~BrF z#xTX4MpIL5>ZG0UEejxP7x0S02_8}f3gpM)3GgY^0W?5f^^jJ-WFZy=>gRxZ#A{Q& z8VR^UBmr-luE1Ox&bxVdN&-3pa&UKb4B*A#G+vY@`~go0L70()=^zBj3|Q}&(N*=o zxZeg(BT9KuW0VqSkQ8K6LszFls%jYM2Up-zXqYsp)C0PLnByxVD-TM>7|CuHV+DLP z4q*g-F1kTD50TZjNaX@0Lw-=KY8dx`4vI)AfY@>1Sr9-~RSlH02!dcK*zHq;JyRms z2aLp^I1BMg1F9}c4WJ`=)zPFRU21$7d@guV;i5}}2v>v#w9|-pV~huQml{EXcW=z} zHA5HxNy-roEirdBAp`1%B|Jh(P&20HF%5&X@Z-Gh1_Y|*fNxHt28mHJ7S*7%CtZ~j zB}BpGn6wKh6L`p?kP=jrf;>%5@+H=j!q}?M5fG8(<#8UkRhCmQ6r#F-Z^DD3Jb}xB z4p2i%g4B=`r21%t*+bQbWHyBYqE=i7&ajBVOmhPH1n>d!_p=ft2T>^`Nln$DDxfq2 z~` zKp^46!H4h|gBef{OXFD(RaJj5PaR-hRsW1j;8}Q-g!D=kkZN!r(n5SfDPM|7sZo&w zlj1-*0@Pd|M?kQ#NVH|0}!R}_6 z6n#+_AYKUCRc0WFA)`^NWZmc=n6kq`0ktX%Miz!*E4S;%%kqMl58hs$mU_lZfuG>-(Uxf`-y z47@)N!ooe7XdJ2KV2Lsl%lXtQXa{0r%3(h%h;EG!tEuL_i~?pM*dYNzBS7e!1kp5j znUs<9^i`J;AO%w($HmET4O0X~Bqe+ts{s#EeO~KGBEhLkgom?noR?sBCs;qHHowK` zHu^HDa+WV=s|KcJFr@1+fU0B`+$ZB?0k8(11=9%gAU$3#Xkg${Gb9gqMWKL&6xGp8 zQ!z_EKvuw~xM<1=R@24glthU(kN7eW3i?8rQ$k@Zt)L-%mO{W|n???qKyz@^DwRhN z8IjrDI|3Ra14^*+EG0@k4(a9lJt;Y6&PuRmR_;rsC=IPp7-=%?Hp;k&?QD!F^I? z(ZM?vwIRrdX&AOF8acU7%!*kC=$FJPkDHT)h>SlN_LMmDhzG1C?;hoqjJ9Yp7%>bv zDXE9`n_)VraZqg0<6V;w@D3K1MG|WqmPO$)joVkm9b|%|qzF}|UM5b8Yfkc(X8gV;# zYloW0`BFp8R5|VU$~9NAHB1)YSoEa1l!8f7&XzPsWQNScQfUS`td=2ZxhIIEj@36L zYwbpGMFDd{1e0L;X)iJ4^TM({BzLIsG1>>N+#KnbSyB#x9Cm7IZA8WcON3!(4Q2L_ zBd^>bVvNadWaJD@aj8s}uIicNTp_C@8fR(@0kFe3g?myR@|XpdRUK+8c;iSWYQ~tj z=+qG4gZ-?hpwNWFyvVz!s%c1yJaRk=t_Bs0DqGPZN{wWq+lM1E8{^0koG`MY2fzD3 z1&?H9xpWl93`d=`e?i(6LTQ%;(m@3=1V(}pOv$JL=L`-G@wJQ&0wT|{R(;l?SQ|{g zRnF4|r|AaF#g>INPFjukSk1f5!)X{1Hb%7X4S#yVJch01Ty zg-I||X)=db${nnqrG;FL##79|3jzjb1T8Yr=3&YyKQl5q{^GrEGK2+iz+WvK!=K`2_qT6o7GCA&p(hlb*}DG9$(R)^?*NnGvA zI{MsEPwsHTJcY5MsBw4LQe~ciWR}%sMGaoVz-k!0|BzIPNf|BA_8y*F?_4YLMt9hY zM2Nl)M}%9Bx#^&O3i|-A-tNIV$!G~YQW8@)LlxUi|QmUUAmTWt|7`vW=L+J z^Da+TuExw22hGWi5VOmXBE0_TuyaMD-xc%_;Ngt8Thb}Db`gZqNf6|Y36+gt+Y+jr z)TH-HXth|8Ssh6yQ)=MKiKsw9bSsakVKK#Ecnxx52HaB~wsuOTP8?T84w)E@yj=0S z`ET=KSExw) z8@y^YR|;v|u8`3ya(&>jDZxC3+0s5(l8MkkgyUg`D3cf=YavseMXe}TgB`}xt~Pg6 z4I!GQ>9R?F+Mq{;;i{mlnJ7=SWCevGv_?Uv8U?T5 z&Wdh#MNV@Xj;36i>PjR7;Ro?bGAklpsx=$P9ZIcfPqYaK9^G!rNV-A`wkezn{o z$MaxY(Wrzc7>OVVpkD_sh2YQu!Zyi*Oqq)KNU6{CBY6$u4vT8F%UX^a=o;GS77ca> zUcoDbo8*0YOF4z(J}pCF@~}rrj(9|=*{9p7jg*bbafe(@m$PzBoi*#*B9S@OOuACu zFAk?Gu&yn4!x{jBDB`26lyJ)eT5T;+6lKk|Elx=f!{1KRbzQXED^~EFG3#njBZIX_ z_ZfLulaUoCyy<|Hf}mLN(IrMn0p*brbNL~qPMRcNoqGe5N@wNiQQ6!+t2)j5((bsL z>kC$rF1F}ojHr)+tg{PVhcE>0BX_!`$_SwiQ{B0UbZYZljk{8^TGjGwGURvALYa3t zBnq{`IO?Rykzve&9Fd$XK==b%(D!R)A0Lsjk-St!ls$JuB|;hK=Dm2_U=?|=av=}# z|1GYVsfz`N5mT(bUqCFR8Pz}@vzaD0sEpdOK1W3?#Bl}9mCPG6L*Q%OLY9&vgLyB6 z8x9L~RTnatfgw{=7sg0oS`*5M)VWrpjA%_#@!GzSTEiHRIOR4Y)}%o)}jhhVWxYvKBxEH^9q-)6y0%+d#nymhPbR?RBPPP zHEM_3#WMH~wS($HQd|Qa=yoVnfk=^c_UJ}r8WkgwK1=aKj_I?{E$8b5y3gZ{*9nXS z7aJ8fP}l;sgf9O?iAWQE7X0Rlu|k*M z$|{UwUSrf~bi14e4<}JD{YDxV$>dwSHSD9}kxYib$lU>_R3vmh6S-4VG5TVs>1LtN z$zSMGN>LvB#MGQYrJt&5UEDWsqwdj*5-R^m7(QY_1wCYvsqsuYzGGZix=BkVo# za={&r(k?IEXBM)_22Y599FcIWzyZ)xO)8)~d^4V~gxSk_Ty(C=6ck}93JueCc&B-cvyCC1LE zhz_Y~&XRtkzGnflXpQuF+_I?h;8mkSj`1DEQbko2U|yRDaoA%3Q+FU1KT750ggQ{%zOVYWjS zBy^W2UUTZm_smXZz03IHxNAYbaa4@f3C5_HEm<`}0cA=J-Z}|hsiFO5PdVk2HDe4+ zHr;TT(bg(uvY@inXV%7uu#|}0w>_6-ws7TmoubZH?lQ)+6XfuI)2l8PviJpr@SOw^LTo)*2nr0vv6+31IbHkjsWy6PSqX?0&(pyh&5Y?Mm` zd3E&~5D6v5WC(2%lUJ{tX$n_ zu)DjA9URC@){MeN#F}3tl$~a16*2YbbiRm18d2U+DHOb-C~N^&NvEUgbkb2`#b=8Dqi*c+*Z<*kg1$XZGoU9Gg+V$tbTR7e`pTKBf@en=x^vtE}6#O+OnJm59F z94dLdbh!&$PToB-EH#nCGK)dxQW6%WC89UiLVIcKfrv7qjGk)D)@g(-TM81|Er8GR zx&@^68aybA{G5*|Gfv%WMM?(FO)Bg)`(?_`&Pb%wtkda~-Beij5k2T}vF|#FVrBiPpY(($g;&!wnS{JX^X|I zgRm1ZKT_j$h8pV%*+SOu@mm!vo%PR!b$p>to#NIVw`}Qmr1N!Z|APJ+I%~}J)o8qRjbb`m6T)HJPSh#QYF(nz zt?W=nY&KiOmZ(+fbX2d@R#uwL&NBlBr=zfC|De~C7Tvi%whX;;PRSbQJS#q`;mDYY zsa3M&VN5G3Yo)e7bDc4uBu3aQ&RV5dtF)bq7re%C_tE}&o`M=?an#Z0b!4@;C~#_= z$7mDbM7U4MhrxMTED^Dltku~pppjx{EvcH=D2|y=HTF9W40zoe(^0Mmc|-a;1csVC#|g=q;-awJLB17E)E4xb4`2E$+fVW0N;MUMP4V zoVo)2Ae4Ru+2JVA>Jls?v{SYzDJLqL@6JoZx>}Wr)Z0QTo&MGvNf~kLjkeD2ZHCPflWlU+)+afWQ z>O*iqg~HLoVB5I2(Pgzlc1_iI9jPu{9CyJ+s$5CB9CU*ZaRmi3fj6*MjZAbeZsniyZC>W1=J1}oUoSglfEbCOM?&i@WRr-4 z_aWd-i!#T544v4geoFfMpCFbsuZnYnYqKDnhJ#z)S1! zabu?(Vmceq`Cx}8qBMg(pgjz3Z?V{e%7oqmR;o8odc<0HLm}JfZR~Fw7#e8k@_151 zG-}+kC9U%n3RzxYGFqj!GfX3vjo4zOPNi?v+rU@WlCSk#zOy@FW_wg8y^T$tLce!j zdy}`}SVN%@m&5)+TcJbg7@X@;&{7stDS1g3fvIHVt@=n0Y1ipv%81?q`n6x4)~U!_ ztiZ^iw_%`hux+5fVI15>s2t9+-ln=iX-A#6QArae94B>*+i1Ws&3Pbs}fo$WTx4j=kJJ{YhXyyw@XmVP?$Bb`DQ3zslOi5(pEZb?<0ZUGO zkKUHB*-Rjn1aw#*)aiAz8^)U)TZYD=lcR&}-hSY$Z4~n$h1YA*DZH?!Jw!!VZD(f` z5l+I=*`tr?^oc16Fcf8HVv^gE(AzALNM!jMZ@)7=KCjW+)HV)$4Z%c8r?MJU@D6f4 z_&@=6ICoMern5&97G*)HB?g@7WBP<8rm6}krtj&!T5q=K$SV&W7@s?|rKw>6jBc=D zyf8T5+0M~wE^27oZ`KtK@JPv<%{E?M+f0P*R~o=-Cbif}Tf`(&>Fm%WOo-~)>7xgL zl7S}RuwfuOG|<#`bm*uWb0Fh*L8tS23sUzE@XB_n1Mf6}!tDCaie3Ns&YmarC71zr zxDb;`d%#!iIh$-aIy5l%0MIi~=x;kLjt>nCLUtIEV{PMv#oL$)^V$fhH%kPMPDRA@ zu_t?`Bg{!d?foEjZ+qhq z5ZN{`=-~_=ZR1eB85GEx!%7e~Y{V&H9< zZO6d>RXtC(A9@|QVd!WU7qTo^*G_&*ip><2VV#M>cQ8sYZfKMU^}@b6;O^)k_@JYpi2io((6RRZwj-=@zdY;iQM$X3x>H%JW7SC+d&|@{`uz4Ppw!oPy zwS-FA$zg=f0@PXTz4|=~d)2-Y_9=V7=ykI)u_yN=Y^`?vijH5cQk5Kx66sCYUjJ~i zSnUh^3-CF2ys6zg*Z_76^cL_Wt0`>Mch>oGHGv3BCpJay0Kwb!J(F6h-_l6Wwajk) zD#O*5Ub}wP6u6|X*o6%#=xPvt`rCm<&<)IUZ+nxo9cG!vm}DCpi5_`D%SDu=UKQ*x z){?fW$S(HTnb;Y-cFL^Xpe3*sdsPxwKmMveVV{`V-gc~gXiHU&7yGPEfAB~{1M}Lw zn3t_6uVOY&YUu^z+LLIVgLV2 zR!w1x+^clw-4|)s#td4Eo!) z0sjldV++>|orKSL6Hq>I(NG(!R$Cb23aH>B6_81GV59}!t$~&HTB;(@*Q)frtLmrB z$~>L{B4_OZTd3-86$1jc-*T*ddsBPU()RJ8D&5DHfZFC&tpdVw)%j;Vg(0`0P1H-^ zJqpG5Xi*3Fv#NyaNeIXKRrS-VCUsG|_4QXyxj4;QXSP7^KR*Blwq)qk@ur1q20(u& zm;TT{SlGZIOyFY;`I@;!ua`7=Ac1BrJZq|Y*%*itToMUG^a6q8#jbk=pm`5yve(`V z&#d%|&N4fkF&?!;~HKra_N2Q6*~`s;>{EuG(Rv2U0uF!In*m!nZ`Fq?Cb zv9dY@E?(aY)(iAn%piB5^|d{-HtY9*XrRy5S-X4duZD}69{tKvJ4|2bWoyIXf$@WP z-Q{iH>a6~I=;-)G!v-tKI~uuy8f&(PA}YMr2q8Pvd+qhmgW<^@S#`2KnYcKQ!Jp|9 zt*!P+tu0{NRqN}0@#BW21D=M~p+(D@hK>y^JauZYaeIS!{NfPfLnki|KG=}!_sF-P zytPA#x+6H4$|{2Z_SQNjV(9_Pi;=VTd^h`>+je}s;_0(*Kfb4W4Xjb002fe=rjKv) zWDg9;F8y-xZN@#IFD5)6oYXI{V$r`yZMyE24b- z;fbwB&Oi6}75Vqi-}C6b=U(^fdw0DzBl+2v6Q8}XHA6zso3f`zzvuP$9{uw-uRM2Z zM$>0!FWmL)S5?yi?N%)YKGeVFEgaZB|1R&s9>;d774!GK z0Lz9uZ@=*Jqr1L%_oFixChkA?X!gQoTi=1$Ip|zaCAVJot^RQ zg$>&dy}th4ho@h)`s+onoqKfCm*1mbd^26U^unS~XFT)B!Pn1U@x|-AzleVP?Jvi_ zosm9s7JOy>=YQO==H$0^53jf)dt$|vpFiA8|8B$67rr`q>Q;l^u2Nk+$u*_t7ai82 zQ=fu|98AM>8!8Bg3x{8tSoyC0m7Y*M$^rmj>;A816jr=^`kZn9(+vqBGyAb`9{Xa$ zzQvus?90mr&P}Y}{rR-r$SQf{-u>UBd(J;P)E)LXoqciTz2j#l-}%MF%K7R3 z_5R&jH1+g%UwwH^thQFBBb@@o+25{pwhv~vWW5ur(FAgkZ(f+a^Xs4R2)3*R{LH5x zE#FYSaM^R8FJHgqj)^k|eFw(eD;E9hd-TL-)2EQ5f`rG6oWFfPqni8jqGKapefI14 z763J+&)vJ}!Y}7P)fr1#W@T+X`VBKye!hInG%t{y=jd-ZFh1CD7va?@ zJ21Qd-qbhSzIoxHMQ@#%KI5wA?!9&0*%kNxa&>IY@`o3Hw&P4GA`|!de%jf$(n|9&5H=ka2{&%xqd3@2Q=dvFkd*SeJXa6E{VRUHA z_&_5h3m+_P-$JK;`#oA&IiG+X8^-6RtpM=^7*yzrTi?I^p`TxJ%k#hA`R#NV1}PNS z$#32OxCn=`jX6#p-r_;TV_(&M+B80X^wg=XH(qho-{!U*^v_&8&^qU_&#!oW&IkK~ zS}Mvb0KEld-fIL{nSWvN)ISgL=#oQUXaUXp;}>}7nXWsx;=AWhzO;V(k_nyN!r|?U zKlsZB)AlW{f8yb9J~($ab$I#j)_r^GWSubYru@P+i+;1cf7bhdd-#RF-v5s;{`Jjg zW7A%Fs(#&`FZNB_ylfd+HKI`#aAhnL@cd~j-P-5uW^9z3}4;m@W$@b1{k z>3@8F-ljDtpFi-)^^bpcV$+(TMGMB#cN~6}Iib0a3|jVG-+TR(xV``CJ+C~Wzj@xe z{_DI;bE~dz*I5&rCw7fz9^csHUD(x39dFp)HaKwlo|~3FGj#nv|C3YaufDOpVaa&? z3zpqaEWW|%3Vyo$@RzMEy}bt;-so-b+Ian>1@|l&pEK>X9@mx5esa&p5AL0{cq+L1 zu8_TDvwfiLnbubBX`A86{>JgcUoLkoU-;B7Z$B~6b|!S--G?^M8_cgAxX-`w1OL8I z|G<)WZa?$L&F|bEIymiv`X}!GV%`1s{bXC|rbyYFpFDKvP4AxaSBJV{O9$rsbaT@l z3)#ARskC?B$#w7L*NFGbvFV&w*(Wbm)z3QRcT4uPl8MG`mD*bUYHDMqL>jj*zp=M* z@R|2d>>B&(lVknMwv2Cmw(h3&OAl{a|C^}?PA|LZrt4nWFm2^i^-uia`o|BK4&M0B zNef%{EqVK@Yi@t7YtuvXrw-h{c)Vd?^@Qga_uTJH&RlTN+q=GX)iVpkw$(lL#;M__ zZ=AGwZLh|zT5#BSxd#GBJr`S3X&LSL`R8ZEFKwrvdhdn12anyn=S2U5OV+)&X5Hb|S% z_@yUL-uc@vUSD_W9{X!==5=U*3VJ^j>OSKd52 z|3{x~T0HIf-uotO{mrUhKe6n}NB%gzTmR{_wqt*~=lZql7w@`s_q9(g`^(?=hUUX#LVR zpMLh9Pq#jDX8zO9-r`%o_=y)+wD0qO^U|XAPpnU$IlTGcgcr_j-c(*X?}@eB4jn(S zeDU7DzWLkv_^!z>3`S0Ntvmg&Fzda2Up(>Tk!gR}cmLGa>nE(AbpMi*Pi%CqeR;$B zH-A3s^iRJ$cGa&&7r!&TY0n26f45Bi%9J@b>eh@{W*z?Sr)Q@eyZfsL&&+x7SYzeX znZ2hU^WT5q)V4FPdw1Qj?2n&re8l(7r+17$^vK&Ad~d&d&x!~49=z+`iASDW^^dQo zZy4Nl;?vh5c9fmGA(|1avTLJd=QN0tBN1W%BMwCL10Z&cRD~99|~!2m`2< z!sriX9e@;U1_XH)hcT)^Y~%oNw+Ms5_P>sYe*>rs;C%3*0n{0+K#$NC5X^uvDg}oz z01x9FY=Vn4Bc~uf1pMw!S_Jw$KESp@I{=)z#{k9%AXn(DM$S^wB2mmBfa_JEpMZDr zm0)vYWEf!*Uggeq;KK~SkNvD1P$>YYB;d!YCH%o|SxAdvmTU(L5TENQf8$fFS z5AzX4S|P#5)Oa*Js;trl?`v@wgO#QL{Z&JQB%w@$=3%=W_xYr7OMy7pa0Qs&j)0Ft zvgY6zZRH(~Xa{VW0ro>J7dZh?ixhN4{GebQ>(L4+<|3pBtTtwz!W>>S_ z&BIWBdjQaoRitek<;@kGuQ75yp9EJ^f|d6rfCGIm$cbfZ&U<2=5C(wh-PCkixbvu9lPGN=jk{kaAV6l*1Gtfm^bZAUi@7-US=> zB=5JgP&@<}NC^N007W4S@tg#Yb^$U3P~0+>$eTe}909;AhJuYBHEj5ZP$HBb0|cAs z^FYl73rtJ+E)11B+#M!&mqzXkNFWVEAVMWzITFKKnH8{OQHcYq3&%{&b}r{hdx};o z50C(5QRo~56rsxrP)NYE_R&rzRclMuU~)$+K;S?+r&cSV1OecfDFzFGL1Q2QC8dQv z_bZH}aT)730q_(c!hp5Z7I{Jzby7 zdifZ9%wY5}WCd`kjJT7Gm>demlgk3!w_0HVNFkQe4U;LD_(gJE-1ssWFJfi)JZ z?na9MpGOomMDDNd5dj%pa7_b7OI6{8E(Q>jWzAJny68Sy0BjSKMS$d(lmqdAac7kZ zOjZ+eq&X(l7XT9;qrv>7AUCa2mea@OMre|Px`u!+SFV7C2`u2AWfr7Ls;LxAE#OS! z$)u`O0Fs*UNxCbebc%+lLIEJ!VFk<_AVnw~kop?MPt@*F380e+z|dEe(5)3<&K{WE z@jpo%>T<>HQp*8yRmHs%McBHQ0d9xryKgEDAe!)q$gzOn0bDPub#ycX)Tj)ou=mw2 zOBS5u7|jBx8Qe;Wm7;h@0LdC=Vt@h3B0O#l(-;RN0_F`|gUnVAGw+w9Y7M}gt-R=W zkH)K5VQH<)LX_NNC|B;;NB4y|Pdbr~JGwv~CD!M{iL?s~Oxny6*?-n(61j2}Xw6sU z%%q$YUt&^GGL^E{?yI2z>EkID%UuK%(}0`NvfxpJV-o(3`vD{7ZZcLJ(PW4hHGZ3m zmSZ?#u;xH{hgtK}x!8hqI+scNvRW+%VS>iBScsPZ61(fiQ)!JmoCOqOw1xn1yae_) z42;r8q$t3(Q@0sHaXhYu3c5-ssD#dGaktUUNdWpHJ%Jd%!w}q$8N&dI1j~_vBLUZp z`%0r~5r7AEf;%jM&7Lk)GIs!OELY=>gB|}Eres!~7KCWhR!j35HEdk?m?8~!U20}7 z!-qvqZV1(hvXEM*iy*((-3LowcT^6Mgm6z^4(@GJiH0x*;LRx%w4vt`6#x_G%>cN|OBog0XOBC@#y>9^Y^OE=R1k(C5(( zFs#Z^Gf&D(vKpa=NEb#f*=q(&IF9EX{n93jf=Tc2awe4ZH{>mtharADTuxL3r<^y& z`%!;00KpE7)H3Dd+-yo)$lK88A3=PkkrFz08V^aFbd5URr%0D+JI_NUb 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 PJE!hg<-dJ1w#4{<3dPl- literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/Base.png b/newIDE/app/resources/examples/space-invaders/GFX/Base.png new file mode 100755 index 0000000000000000000000000000000000000000..79f157e148d1d61b3a958abbdf98593c29e3689a GIT binary patch literal 1848 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/GDevelop.png b/newIDE/app/resources/examples/space-invaders/GFX/GDevelop.png new file mode 100755 index 0000000000000000000000000000000000000000..30e4238dbe79920ca3b271aef4988c6822c243a8 GIT binary patch literal 18478 zcmcJ%1z42b)-XJTfPe^!q`)||Fmy{wr*zja3`p0IQi60#i3kYNozg8WB1m_)bR+QJ z_&n!%pZC4a`Odk%_y6!>yyxC~ueJ8ttM}f7C@V?d!zRN9fk5|UWh7KVAXG-+c@_%; z_&iIFP5}P9YcHeY1hkLc{-Qi*NOl8(a8fMPwUOG23IcFD8y1+Uoe6@)&Bh++4FU;@ zxY@(tRtO~61YvGrD+JlCZ-#&^Oobp?+=^_9_Tq?_7BU`=2sIBSb-0HWoZl28A`BLE z6953%AdoPyn~k-tlYpBL&?3 zw6~MGyFG$c72#y(>BQ2<=|9j=M!M#5a8hZZ(RXFHiaQ! z|F*L!T)@oE(FO)AgM|&u9KmXDYYqYbwYUP}cGh-|0AheT&cDBx6&F`_v@^4?1{$1H zrJsXkCB=Ez`FVJt94zd=$yHPokhOI}!ffFPSqUKsFjp1}3sV6$PChmhJ}w?8rx`y2 z%FfQk4dv%Fg+sY`IoNr*&G`A?e1DCXu!B3_3g+$jKXla84i3QhFY>rK%{bvaFm5P^ z8HX7Z#?1wX^1;nGp#1!ta89@>zX=~d{2$c3aI^r-1kC#HP;aR+1t4;Baq)7R@ZGAn zDL>SdjSB(g<1S2{r2*>*#LMI#Uv!b zTC(age_#LK?YF@G-p&d@V!gFbe*k6u7ifPQ2>}@kCqP%+|3t2aaQH7We%l2B82k@* z!f&+-VG05N@!H~_2-SbKe1D90eTe`T?*E`_e{^%QGef$<91&vXz-s>|+I&0t+qna5 z{2%n&*}5Pc|26}Am?OYgB(MfT5Hm+R8}MJ62S(a~VfOac7VzKl#p+^f`lmJji0c)e8I#Xwza{c9d#7!CFwR zYm+iZRlYov5>tgRGdDXuT+JdLeCfKnrIBRbJaFjM3yp~g7@Z6LBH}+xhB9X6riR%#$XeD=1mk;U z9~8;5qq(hbOOk%XCm@LVKnqI!g8XW%bV3vIEmIJE-l@kh9Kc-ut(r}!;BBddU)(d0 zAmuAILZbc6GVjNhuJB$eIWt@Ur>QYsGN~0Y(c(cof-M=nHfZ|pe2ByVxm~mg+IQTK zbO-arYW`>QH&YStlusdsi2ziNuf6Y4fBk|dmm+j5wiD|>T;NudNjEFi9SH^B1G69a zvnMNwzX>A%&1 zY}6;7XU#6uByUYEZRL;j_c0jBsYTAG28AE*lF1+G-gdg9gp63ITDmF=VwF1*1bRG* zNqf9u92x}BwdzvZPw^_3W6qpEFVh?fxy?^{2%e>fnTxzw<__~>0eNoZJlh`;sir&r^@{SB{IJz& z#c6RTrkxJw<@w0X5oW^>4<4u{pXENQ&t-N^acuCo&rPdOJ(*QvLXS7pungXKQ$Mx8 zL@|?hUz7TS>=Q_P?UCR6%(Qx29i85>=2waq>b|HTUZctA1NWsW7YkBhw>~n#i!2+y zGdr!N9qufPdY7l(_4V|dhn|Vhoi)Q|i}dC3_koKwX;kOhQM}R0_R^CuU^xPp9Ci0w zs*dl9?7p_zT5!}=Yr6iKC}Z~y(NUb)8JAxr-?z7(_<7-3HLLt()kEjrpW^a~uTBo{ z_4O@z7wg+6bsthwz1mavnI53FVV@C~2pkmIPEyoTXy&w4Tt81NERGh^%CH^xupM1i zR=e3IygE)M>P+#DKHU3sxtElqlyb`MTEf`DO{_k@Do>u#d9(3~r$uNX>hhu|`=M&p zuEg9nv%0wRlY~c;4!u90?K8jAD#k`?>DB6QM)ELXSOrtF`? zy|Zi{x1~gVyR7LRHV~YXe@|tu8r;qHxp{>DaxUie^9Hja2}(PVU5dia4072zyoS&wfmn18BvIxOQ&`$v8IJzOs>s2#cYnf(2%~77+%|*ROjDy zDz2T^w|56-KdjI_XJE*?dk8PtA9_9Oo+f_L0!TS7{4#wu*LCRBrYQ8XHm0?M%C(Y4 zDDc_rXSb8)`>C5x8>)%4rU# zy!yKTc_B9`y1S&G_JHiFopSUO2^L`RIO4|ce@IrWHL>Y%rzC|QNL5`aJMLzd-16in zs3oj^3Pl1_$kk3Sb+|UxdCX@gD*sTszEWWz4kN2-fjJJkwN%`d$_c6@03Iva(F1H;Lf4o0|j0X9* zvTZumwiybAD2&Aos1Xw;((PG^M*&O$XYlnu6e2V@I=ygoGM7EZ`l9hf1 z2EZ3pnvsXKU(b%wQY!AG#qcVEYF0BQGfQH^sdm?uUb;NDirIL7-V_wWX&h7W@>1!j zN0?62T1al2rim0gR462yCRMRjzco=WmD}(nO z0xKu5uGZp-E&~rSMSUUBIF8MIX|Gx3nB;^lI(T;8lmduDYkzCa)==PbuB-x_Gu@O+ z$?fCnPGK0baruCJndVtocEJ7Fa=Ls)pU<~OHt?v60$OvpDFynm;aBTNNUJIo!z&Lu z>o2e=k9y_cdTAZK2i6xtUhcZecwTcNoDm)lpnN zQKL>~D)Ftf8%myL$LMG(gsrzg{_s`_qakX-_eKKBcfafcdaSqo-a3D+sYpYG(LeFT zqUq4c}X7a2Z+q>1wB-aabV>3p_<%rs{w<=M1t|}bEZtevsowC;V&dQ;~n;A z*!A?koCF=;YrZ=D%C~aT>crCm%49;C=q(Ja%;#NC5bAAvE2*^70(9R77952?gFMX9 z{Fr!$QQ3KClGI8*hc^puImnNO)Zh?>8qV$e;-OA^DhA6E7mXt!0-*vEvM<^UioUqA$kuJ_p z_R2{M9dFa)R!@}5kvB;^-&C>QV^>=ztAD!YSphDSk1@Y!m-zO@exuCc)j9 za)uS6geaVU&BS?|vKcj_z&1!0Ni5QMXUw1h3#6>M{g%-ADWgj#{Y26yWEivOoo`uI z89e^spXT`;`JD{TkHS?=zjtb$b#^2HY^v-I#MU}sQGgJB3CHjy7Ew=4L&l| zbK)chn9+FV^GI_dnsOeCney`7-R8dmT}Vdv>uV?Eu0Cj$3w6n+ag558FcULNV66Wzn(INxBE-XUYkJ&b7}JWj@&Q2l z&5UKYKoskz8*R=XM}^OM=@snVy8JIU(*%z`f?C#YoPyHLR6rXFvdfgRA%(pm`ixvo zc%R#Ng^9jBP>~wH*34PXPEoMw)NpoJ;qCR$xri;caLck0wEQ8K_#ko9C>U42Xz->2?5Uc zVwLgcnW_oJ2q_BAiuU#e!g(q5>noY_$t^i3ea>mTueV`b-s_C|2US}45*I^8_`yFT zlfN>{Y&#+V_ml<>H4%&o^Z3r2#vjP~>*AvTHAIqsTXT7pZyu>VU#bJE)|)TYTPW3; zFP#Eo`OcULU%o`)(c7Hi<_zgtYELud)qDaWh@tdcn%UYLs4fZ@Vy1D#8_hHYp`c

)HWn@AztpY(gv6`Hhm(@p+8Tm4{)|Pp@og5BKOu$vc+q&NL#_X8HyjnuvZ)H6hoWWM~E-+-@WWBZ1wEBjcP0mWIP zgDnaDO}m4$1sx=VkX=T$!nx0?)O`k0di2H3S`#O~7yJ9f)~E-AgoMs(iq;`X&}YMO zUnnt~D0?};x1u0Xi8yYO%*>ty=djZ3GTkkha_FX&+{08erT}Pz89uSgsEFw}2y3zwFXGB!6cn(S0e&%)1A|fSAutyfRL~42<7?xW z7u0N5Hw&e~qHHwo;j=dsy7=vouVyIe_(qQ*kSaDA6>V`v#@P8dq|wUwuG9V2wuu| zTaEcs=opYX$>4%J%=M?RQ?!{&<^1ML%Lo0m7~|xtBhT`UK4$= z{HeAJ2&;quAj~LL8j|@5eW?OJxI1-Qtbq2-4B!LXD3N zH+dRd)&ruudQy4M%|62lm%hHMbnS>uO3)jDL7p=(Q-?}blmDb>EUu#3on-gCRY||B z95-sZUgzLAtzkGkD3w3Ewfmd<=YJYP_7Fv)(XTxx;M-kyF!C zlGLfG2Qu~brIgoIW8&BrL?-0wIt;S6S$55z_Cq@bGiapn;GdV=wu))SI?PZr37v62o16VXed%u07ht)T6F zJs!;*cbc{7%5*ZGu%j3AOV3ui)XAp0{i)?v87b`tvHhMRkDJE{qDx(vP<$Yn3s6WXuAsG4Srm^`;AHfix>tmEN)J-C3OmRr+ z_(<_4w~1u-=hV5m09hj}{*(2wmC*?9vy%$?A%SAjYP;f?#}6gvH)cXG8N2E`?MpRg zJc6`sNVQ{?KUlR>HQC=`G1L@TgGV|?E+);Soc(Aud~EB~H|hyx?r*&aG?}hx!mhT- zk12vVOhC{2=|7u@i?a(~7F4Ux3@yuCGDNyY(EVzFB;IpZVmfdt)YeaBB3GBzol}0p z+w}P!)n$+2uSGj(51y75pzba4a5QwWeG-KAbXZTGZ<~3RTZB7W&DH|%Tkj??NdD=8 z{dp*dwVu{%J(m2yA9VM0(NWHpBO+=XHTZ3>S6wvJaMfPp@0`!#jeHYH1E%XEJnlcm zBZ-NjM=r0TvMyTktTEYib-cf3$4{~mlyQc=VO@hB)X%z(RN*FR5cHX zhx-Q58(cg=_k|tMSt;H(&sTfdKlte%>t^Okf4v{$;U(4A8HVV#N=6 z>hEY)2>TE|Psjh&3Z`pB2@iMwF2aRpWPH7$4-J8QALfkAPIdV8E8dK7S$qFfi@9yh zPA_EBBxiYlYZGU`bF6w{vgDc@8c?O{e$bC68*TCc{Z@EIUe)p!!E3Mmp4My+rMYK& zRK~!0mpWK`F&RF^qD#e0zg>eCIjr@k@%<*P{f22XZ+1p&x2?FS5?Iioku%({iP@ z(O?g={Vn5`9&fgYj0(qycpd@ze9Wur?om~s7TI2OzcDmBbw93zll{?`9Pcu!k~ET* zn`xgin&Y#L4`;$BEQ*d zzp^UzPBHLeKVXci&Hu&Y)&!q(&Pj~SxutSc%+#AiCgtUF3pRn{2qlcY1K7q1-qfgO zwzF*Eh;m zb3WjGU+Te~ALKE+yQ_UsKwwa(3#jh-;pX!78XSY(@s*J9fE~G~CG(1*h zsAjMHDcl-!(4eYlZ6ew2y^{L^D_O2V`INYu5XKVAKX>}#W3g8jWf(nSO*q$B> zRpdNujXomY9gP?|3e&Zn(`VwR3vE%e;~0sx6}gzlSQf}AzO;TCS6wEIu2M)#~LhG;5&mD4x{iP>6=)AH`sYjbxs=31XLQ z>gcNl3MPslaz&6)@g%d?nSDdpPX{G8pFizv9NIm1y&eb%^giWGOn0C%6k_?g>hU8m z-#t<5X)6#8^hplQGS|OXb(YqvVUnyS4b=K!v#G{}! zD>L`%nkJAwvx0GVJg$isMUGP;I%9HbpYYusvHg7oCB|osI$8#WvsO9#(xPhxo{NKk zq44oEZC-Y3`Voq`qg~V*JWQW>z=)i%KkwxjDe(e6<9g726pl0JcxM}x91E?+!&rq} z_-x>S7S)`ZzoPBx!+u<|TbE@)9;8Z_?dNu0iVQjFq@}GJ?|niVcvp4UgEtjBwkPwf zQOowJpbk$Msbnp`Zr6i+ukdiQ&S!H*zltP3e>`fRBFeF$ibi^D_Tx=>6IN%ZUlvY3 zlT$%Y^@zPR&H4ctQ2jdnNr&^~7gS*d@WQu-LZea5-A9J!UE~R}nhT__r{^9dcf5(O z>Qsm#-+K13f08a#2u6DQG{N=^=Zrqev3+;_J;ikmwYG+5C`7AU^F$ruPNy%>*W@8V0ToS`N{ugAZp77EPDWc{S%dY=%=h zC_xG3R+mGPR45RBiun&_n%OHf(f9g!!cRH@LCfeuMj1aKq>6gW$*6YiyV_A?>2-83 z>IsReYjZO4vK41&rwfRRCPo;fPQQG^>u!`*=3L>_%9my_h8$0qHp#gp2TL0cx|Af{ zB-CDySS=?OY)$A#OqnE)kp?*U#g*pPGjz~kg+|eL^rSGTHG%wEqfZC|u&E5ZY*!2! zQryn%OROgsQuH`jWj09Oe`zAJIAr9`8B5w6#H{^z={ELm+wm9D!=t*ArN@$I!7ORS z*uyLZ9=`imx(T;n};m?I(mplE~wF?ic+Gshf9$28Gr&cLIj) zs>HF*H@Fx`nq_;MYMvMBXa{G-_uBfPDC|a6Dy%jD;+ZImUusiS=`cri;%ve8{$d6-UFI?EUDGB+ubm&t3`M`8^NEOC^XogR8gnn{Kd zEq6Ldk|lI9S+qXBiuX{rjm#lh0?-gFP9THdQa#5m5oLI+=_zOyTkhUIc$YP@3R!S4 zX>mN5^g1ty6~k^5@Gw!4{=~>69}eEk**A^ zh6%3B)|Z*H)^Cdi3K)A@+f*%Ds|;;)o;DlEgo*L8a4SV;Jg<``?1(c{^?V(@xa2S% zmo_RgG8)yMQ~wP^V=~7|^&BgxeVsJUCHO00lPJmMfQ%J4i^bOl@SW%vb_V4QgpUGx zou>?RlY&NYaA>+FTA){>BY+#>K8}P-m<^CZw__$U?}J!!6L-EBYH5|kWao4?qI}ra zbotbY1Qa3Tx#gXAhEgAx(_Tyvoq(d3lylzxLQ0EV*PYUM1WMgYxhA!L!BAHnLrG!n zEFW2vA3tl#`C8u~R2JWU$zw%T*s+2kgTco}b*z_cV_^Sok^p|uhaC!OQL~Yc(>2Gr z*)-BTLRDAq9DZB}=5^wvDHbvGTXQ_|UEU=3Z1r7)mroS3B`aX%DTfN}B()_64Yb%+ zeFQT9JGK0!Q(sHpsot>Tqqmqt9#JM3JVlCJFy&Tww;>rjq}#%0aeZ41ihOlm?F)fu{z$CY`~BD;J3PY9r158tMB z#bda~?zK=97+1@!QKn8KrXza+^Y?s#?Th*tZXXcGgWe_+>|dbfhv%`0V2VF=Q9Hil zx4!B6sbH??tQKm<`PoJXr9kqW`#ggogC0%m_{)1MT^9>Ps;%RxoQDSxbe?~XSLrG? z&xAp3pNPgIA=Ka`hf7@nBHjrr)&;Dp-^M=@jrBxYgAv(8ri(~nuWo=+v z{XXcZZlz$42|LAtQr4q8%U~Pefa-`uqf>=vf!EGRthYwTfk?BLErM4=F@D-Dt}sTm zJ#^Dk@M@yZ^pxykl(UO{gLB7Hru}Osx_^ei2Bp&hHzQ@qi+J{UqLoEt4)WP6>TZW| z;|g7McY`|48e<;Sn_SPXZuM*B_vk2F zL*?Jt%`qD=R<0eDE;3Q{;!uP(Hz^7|WE`N`kUf7a564`6xm5h9c7Of&o*x)Q)nLiq zbahIc0hX@Qni`B$@dUgmH%XEsV1nMEw+I#g64=$xK@y*6rmb zlYNSuaa7?hG>f%<0vGJXeq1hJJtA}5uxoSAZEh-VW^Ls?rcuny;Arl$Z3c)RgEl9VNfvTrRLf&_MsXhn#%>v&Mm!KA>aM=P6?g_sJ?pwsioh@@p-9davQ} z$+9bU>H#J`Zh(f4ySkBv-%`=g&-UYDwy`YLPuwVmMrMy9zI6~|Q8S1Bm|~GA)r+V- zl@d(#tPp>YNmyrHW8Hz;;7C(Ter!W-Wt^bX*o9#`Y2Up)h9+8}cxP=9N3M$+sGFLM zS{F*PkSA!a0(mI`4;SH5_Pvp{6rJNUznYEYl3thZ++=`Z6^=K1v^~1)PYA*aXv0?@ zH);a&5~HGPU^|VNRO^C4`QdKX9QB$eXQ;3qI%~Y7{40gB!(}iKSmizqP1S66hAR$< z$)(P6}IJz>FRmuJkeMd z-pwW!%8Tzy<|^9vIGMe}%Fz;=CFkH=PK6K%P6?p~XrXC((5e;Md~^m>-)~I>kG>Te zJxQ9VRS#`AW?>G!&F6L+Z7qiPr+7x@W1Ghl_qblA_XRR(CCW!SX+*iKTFPc=-Y+!m zx!OVTr42~c?Wp}6H&nHc6$bG>NHp_Y;Kf9!X-Xm9fh7rZ!fxVhW#F=9_pW@WKFLL+ zf)E|&FL%jPXM4s$p$7(=AGAT8^v6}GqBf4Z0%}Q?Cl}&wW3F>D2$=_RyLS$ji-BaU zyp#)*nB{5Pb;1|F;bdO*R=PtBnvv(zwSu(;XwB2!QiD#t+{c_8bB{Uc9OvkvJ;$Ud zM~MmV7mkDW>M4GnjqXM*X`8P?S=bb!QAOj2rJqumqZk{z;fCe+f>=!C+IM>3v1 zwjT1qn=#>Nx8@L2PcOHg=FB_eKmKa{z&J+7nP-d(DG0>A13yQ+b0!WaybGy-(hzfZ z)J~SeR_FUS{)Dv{wy%zIPm-_3~$ot!Ebf z$ciMeT%hl%h`dz&pkE~jI;eE~L+mg&7dv`kw~@u%rD~hP*5>OI`{}iwvSf#!b#grp zK)SlJ-*d|6IC1Pu?%4C|`rIFeF5YwFHRa?%Vpm0{Ma{8u&&0GXsu;#Pi7CW4#2$J* zxSgakI`*PV5HQqV%>uOef*}Wv+l*NcF{Gtb4E1xT-Oyy4=E`;V^p(K=aZY45GSWJ$#Qn4TncpUo9NPP$sNG6>PNvu5)8XA9N#IRjp@s3hu(sGu#SNXHW+0QC%C%Ig+xSCid!cv;whJ1r41A9YN!A4wHA4z^J&L<4BS|&eznU|3% zT7`XOtv7-Oa>iN4iGGH`*~~+akG*v6HS>0<+BV!y%M?iA$a&ReBSo5GD;RXi$xi!N zcq0v5in(j|84PHY_Bqv~Id)Xc>!wy@gx=ciYWOVivNLB?g6|U-ZC0r_($VVKWCz5 ze(Y1FglV_c$)ng|^IUL;Q2MuLvau848;cXm_iDP-1jT=SrQ;ms9)$rSt*tIsK?8{| zZd~JB=>J8A%g|tgVKHOno_2jE&q|y| zdFY`*{!jCmh&)QrctfSSqxHbX*L6zLs60_DR?795$7!r9aGtw0=a3EfyUoEU>Yuhf zW!%mIte9to>*X5 zR<6K9`$avOOmOOt1g(lC1(>b zz(qiDwKCXy&o))Fk%A zQVGRCF?i+tYG&`^(_A#4jhTME5>S6!Ruj6^lL96k1Ju|Mml66y3^PT#IF4eyKy`WM zCu^J{?g;%IP+*r}cb`fVnLd8DT}^7wux+Hl6?N`YMpb87N5Qtmqb3R3b9VqS+M5lV zJ3zh5^ELQaE8DNvplnYRg>$q$rSm7D5YN}3WjU&C9vlUH<7!~vPsg}gccD}d6z}c& ztP1;t%Vn(thqf!SGRkZw+wGy6*sm33R@)HSx#_wxj2F8*ae{{U%Rj`d=d)RtW~G5- zs}nzSn84n6CRaPcGBMv{K=Bs5vKp2TW5;>xx}=wokdZARKz@O)CRBI$bw^1y+Hqx* zV_AUt-8l@?qO8=?AYd5(TVpt=jB7P~GhszP=tuzcyLWj|XW>v6S>@xK3K zLnv`f9tixyD<~!5fjFw5)?0y>M$$pG+q?9`$bvnLHMtG zV}w7fzh#;FieVc?fU8$A+4M3ag>*5{`ggLR>6oc^4KIvI!D_5wYUpn z+|F>|8!wiJNjEsF!l-fOopbz9Ti$Xo-_UgY$%wENJr-)9RK+I?oy>vRy5}y4-up)1 zd0v!o*SgLCE+Aym{K)SD!pxFb{0*Kj-F&_DLh&s;k=Y0=iy`S^OfP1jdgl4- zXCF;hnnwkiLHoqmzOEfEX(s3gimxt_##7?{)B92BK5on-fuD6gS%F`@PeA#>R7_dx zT48+?HE?s`+Z0;D&BnJA`;)+FD%zd`WV`BB*Y=hyWs`@dx z&#FKKa{bd{N4F3&@Sf_h!udP&hjN7LqR&2My#lrG-0fsM1a@L^BM@5oYYV3a!AzQR zIAUqjBd-(jjxE_BS20$dJZg#Ml^pjAEVG}d3Ok5@T6VixClo&UAw(7~la}gHA=W_Fj?0_Xsf$&%kbeA>J)ksjOBKPd3AkjS-a16<&@C1HRgep|FpYovDLMx zH73ZeCBC2!L3P*y58|@BSFH77J1*OkC~-~B))-T7hHs)@Ju2oX+|A*#+Neuiw9b7y zaYs9%OW6IcBSmk6j=qkX@623-=4ZTZw=t60t1Ai}qrzg|Ks;5@$Jzp;5%R_nlhzEm z72am-H*I|1ha(fd37@EzK9rB*T(RksL&X)MQSFK9u&xcsXTx|@3;dAu_u7(Y48#<2?XZ$ed zsxU5_oGHi(GNE(=fpiW(ct69D9MRKvWVi#T>gf~AdxMl2a4TdR-3l5iL03Bt8raV; zryr7#2}L|Q*68l*f1PVG<fWo3R&KA&{# z7%x69+(;fsIukXQvuqmdQb+??*=~r)UutYJlZ1$DREBLtBELso--d6?9Bh9H2 zSPRvQ?lzJTmDQy`coq2>QrM=^2C+X<;N8~5Nq`mt=Pgn-T6;5J80Dn`n`^JA>Xb&T zf+2fT6gFpP1E)PaRjRs?GvO&lbJ-Wp%hQLA6rtN9M`zz$Jb$KEIeA|xC+k&c2<Z})L5 z#efMXf`;0U@brx4S30=RjQfV4PQRvs@>1!8%1`VjQT(9fXY-B%z*dj2L1prtGC8_z zk8f*s(wF<^H$uKMIYE__q3ItsNxOh;)WX7;Iis+=)USJ!`zVDs(_v>5T|7%bdA~f0 z0NvQY>j_Y}qI16I!*;tfABdU82ibV3aA9)xK8}=r>O#Fltm>Vj_6*pjwTLUq75nl< zIT|hzJ`>c(z@aij0%|Rb4r>N}Ex#kYwCRW#-Uo2$X zS$Ey;7pY;}+3mII329#@5$|QqQJVRhfJoV6Q5ELKy;||Di7N8P9Qc1~s~SZ9Fc_NA ziC;}RSh9D*1P_T6XU5E@}%&W^z0rTf3y>J!ZkXpx)wNC8Mo1{w}$C%@?Qi>4^C3suw{J~Or*f+ zlaEe}_2+ALt)sybWg~pJhkOSdMMKj}-`C?aoY6J|>UjGi0wjLfE9zXKrJrnE2X^w`s ze)@6C_4AH=u!^J{H1v4$cytteuqdJAn=fp@CM^)Ix-|%gD=NXPO|W%TuH+@&lkTru z1%Mgpm;4A-2nVMJqiDGin{#B69~s61xWlaMYieWih&tIh)qq1*G`2?O@iA(h1E)oWn$tO$_W9^ z@VpNPVmM=a<~Kxyg1iR#=42%Nw_*f|W{6LZUOF zEKDz|68T&P?vM-us&QK?aXD#zlE8fl>b`L>Eg{~L!kDNo?;cK&B-f}$Mp-e37cnga z(yL5L4n#bCZ=`=TG-wb?60QOV)ABnubP%_{JS@s45Tmr#mX7YYVG}PcOytjig^wDoRMuuv+;Mg4Wl`{rXLwTc|Xdy$;1{p~2GDRtXJ= z&swKIermMSPK5qE{>U&FfT$X3WE-Z#LKV1_9`ZJTKm_OufYC2^$b3gkq{NExhFBoV zDyqS~L(koEJYW8#XnQG8M>uq=?#^+Df2sF>aY0EF-T&oC#_P`D|FI zqaXG-NO3D2^p2&}dHkogiq;(!e0C0jkjN&O+tq|?Eb}*4n94D#w&Lo>xP(8579TgG z$d%!W7&vFgpaX=NEeor7g?gGeK^j!AvF%U1nXwsqUDI=oJ+iwvH^j$U*rYmtOzqO9 zeBfc)EFk&_9=N-|ZRybe*2pgyP4TC$K}v8i#MA~@1k4xC#v0;}4n8Pd{rvIDMU*9n zqK`=PIX*hN_>*u&4|X=Lz!)yxJT+Yl72)16$Cxd95FH9WJNd_#l5BVRCZ_{Rd!I=^ zBvA1zzg=x0ThLb3dp+ctc#Rs5mBG+v&5;hsc!oYPx)`uI0vzFK`LawX)hTHI!p&L7 zHyK`?p2>Fq4h#KbJf=c3CnWe|>=V}`JQGhxx!ZGogE~4?z+5*X4bPb5RCIJRucprV zLNc&o!9c~f)uI9>2D?U5k*G*$6B1y(VSls-AKD56LI&BA`?1$8NR;rlLbHdDdB_h8 zl=xDBtxTeEYfWu*6uJuE@xW$}MYsLcK_c9`F8%@&dp}uGts6F_DyJW!fZ`iRKgd}v_I_-; zDcTK|k7Ilf4(1!2>{mn!3C4XRCWk7hCcG`=g3%~$`z@d34XA|}%lNd6)82e<6gc{q z6f7Sd`+fA;o5*Vzb3uWqN^xJQmj*`)7;Bx9MC=t6FAfcGRULy-7CT7t1K$s{f{ySN zXAS$6ar5N7m`-%?{QbrCB$hK&u_9@42?<$~=(ic7Y;W58DeNZ;Ulx|UX}5)!X3(O% z+*$9MU#}UZe)9YHsY>t|Rm*F&pQU~xI@kV^OaLD_PeBdeI^_z>3c`TU#LG(9^uv!tX4iC zAb2en$`a7FFj4tE{Biv~oX`X1=w!5@e$?0r+~5p{Aql^`s1k45o}8hggulxEzDpTo zK9qCZ4IJ0ZA;~29k~t9ddG-k?20D9Zxz?JYyI-t$1|_E*qhN%iab5=m#kE4V)Gs_SX*g{Rx0M;`$ScKV;w8PvHfz-9`PNME=3$*<(#k zAnpaBm{ovc-Rpe9Mog2uthI6B0^7ibBL$&&#Tquob1Zc6JxqTr^tQb_S9_Sx_s%Cg zQiFrzy1=yU0g?o%vQ$5w0{0^MtOEf5_J4CvFqBt@H0swE78gR zk0iXyi;LL?w}5MfDnv0Mk338%T?~O+j6o2QT5Czt1g$lC59sX}RN$m#jkToC_CjMw zD*Y^YC8_%bvl+^b*RI)k5wis#5gAU~nh(9*Z-}(NKHpAEl|9l2uBPq_e#7`kDyq2L zdK((PzHxgpB)i5no<;892w zG&%F`Am~9Y&+QmcP=9z84vqtG!sDIdTOez#!D(3vN#%_JN|8-><|{%B-vB+yOjT%zW>X-@^KlCWNQvG_>~?-`IqU{>jv{Yy zm3_aMt3oEe;muQkctE)r#)>DV0NYKqQ51-~cF^{?vbSD5u$?7hiU%Vu&|QV!Z;}8Q zyN$ne?W$anF=F1{vz4$k=H&sP{?BW-|MdFi(G5z6FN) zGz_E}+q2K}{pI^7JlD4C-gTe*+~*zVyw5rB^LqWjM30t=g9-ou(8Bb!%>V!r;$IQ~ z1sU;j96EJLypTB?>S+TA|9wijD$|K~DE;&w1rlq_{PzRi70C}J-XwnxGu9zrAqO%s zl4kob?*RZe0WfVX^Uyzg3n3W}7H`iEebZofskYv}sHU7K7o&Jh!KNZ2QgSr$p0#{P zC$tx%!*tS}X!ZVO0$kpM1v^pu)==}!n;Q&h5(J$GB27Ivj4&&leM4x-=xK=qr%=lBavDG!N$i}+y+lGi?@z`}dtCG-$wJbp zdda!38eDx~$qhuE*wbT=>$nlxbAH9;q>h!kMVmwS-M!2R^prhy4XkPQ^%(FA_)C2F z((pP`KhTw1#THMe`QQ$W4jhL%9h7p~G7DAH^0D4${D*RjOA`Pw2 zxzP!@12O^^N#Q>W2m{PmLXP`mykm@Ge!%YoYr{SM$W!OoWw^op(V=}%DwqkNTqFpj zNUlqw3YY_OT4IvBA>w3XpcGIFfS#2Rq2s_YLDK}k&nz$^7@ocf-`atRdP!%Wkdh8FNwbPuw~GQ$k(sLpvZ1r#3eVmQ%(bh=q- zBh6?^ox%)(=^;<_BlL4}9>XWDEPg!8Rcn~>m;Sb`JsgB6mIUzMgpJ%vq&M+twhj3GOkr4ryeS`^g|yEA(asl3*`y&KZQo=xqhjXvu##Dd zBlT$AV8*lnS%7kW!>bzZu7RfACV0cglN+CDVWK-!Ty&kTUws;%SA7SVkmT*^3RFC` z>YE!4{>x&xG0HJJxvyMP zad{(ZKXoiOCQ>@S08o{BN+t#Vb!avt6?w zWYGSx**8k~w)f5DeEf%SQI&f3Q1(!=96Q`?y3qISwqrkR(5>iqh_5>NB>B>fmnE4Y zYJMcQei-rz18U+wFl2F)hl^TzHbf_4NoHIS8|`B^6r-w}iqJv>+D_qpisQDJvjcG# z6+eD#xb!QcT$YzWjg$91_ZImI{FGbUYon{qeQg>S(TW3}y%d;cw5LNBT|F5WsB^F4 z%@jK{hV@W&mpL;RaZR605@+k}=>zS{KbToi3gbaG#5p?Xe^R7I3_6-)*Sh%To=GMcd{DxjV_2C5>ORk;i zlPC7qeqjhKbDV(W%re4vU{6_t?f3)9DReiu>fDML1vY@bHqnH(&ZGmZzD-;=qAh+; zqJQfZDaKf(%R=^=B$dP2Cwr?<1PU z{#tgvzyF2RLJ)Xmw%1l8%;+G*>1FT>=pb)Eueonp6q49gqT3Q^?5Og}T7i$OuU2s}PM?FP8 z!n`8TR{PvCLZi$|6(!)cJ!SVc_(&EjT9$njBr+Wa+*a%BAnixmi+d>h0hiks#9DH1 zqxlA<)+?y7YJGA&^Qw(jF}};XYBhyg=q>b)`Dz#ZfUP4Vo(G+2zB+e39{RU)doHV+ zuG2E+^f{>ypM;<{z|Zk7_p~{Al!En`Gyj{bM6}xba+rrrN~h9Ut|bkw3uPm?MO%<@ zq3y)b@ZQvL>zwIgKUN*2JRRc**?MTC>-O}|UkBlWZV}OdD^RoCE`o(Y@qpd)OXAec zzCo3La$eB~pkgIwQHOXIkgHGO7@Jezss+Eg$*kVZw%}Qsh##R9=UjSGbC>GWyDlvT zQzCu6svVI+p=sj=hsuSx#a#`SGZCxHJoxI+PF)NOM!qa_SV^V1m!NVd_x=UDerUX4 z<&XAJMaya~dw8+yRPG)6-KTZK^KLO4vYu@{5|{iiS}xp}aB?BOK-n&op1kVsWC*p;@ut0#3bXD0w3#n34Vy6{BXpoe&(n&hPz{Y1bd}E? z_6*?Wy!P-U*-ZfD8+OkO+B+s(Y3GJE}D_1+nwo*2NZa6HZP=EJPjZ!KXi`Q8#ytoDziMO zL4Ixp%}`kvnTXVCc-25%T280(@_8|7x3+Scwb_QZ&a8;|Gz@L3EAnxPl|tCJViw~o z>=iCn9Zc+Gf`5eNL024aTb$<@Mi))|-$g4%kxNV)vi1d@FjeYOwz^6j9_dDt8o<&UP(E@~oXRCw(oE*hd5BlM+DNkANgRW8cFEvA)j9#KH zd`gNBVHKOy^Lb7^{u)2~&&#oP2TGKRD~4DseYMvDoLWC{#Hspdl)o$cdQ?_XR7^N^ zaU^C*M$zK;+W~mq#9wuCj(nzySlF}45*Ex2mxs*WI_L62nS(0a=g3Bw>6JXz^6vGp zU0>yxnJW#MgHcr~9<+3vZ6eTK>-r!-_Jx{f8na zQ~zGX4eRM|v`>5NKuOZe{H1ko=?iG#zvL2}tfV5sFU+=;<4oxc< z{EXLVJvh3ppCaX2tzYI{b*Or0>N5N8$L3vg& zVLA(T+Sa$j3$VyD5hrfxM_W<}o%iSZ6PRMv(bN#73{^iUZKg{&CIk_3U*)oWdkhic zS@(H;lWd;Bzen+v-?u#TntxCq0Y)zYvEFxxWE+cKtTrq5q}4mQUL7~(Zf?l= zuz2BzitVTjhXVSh6W3uBc{hdiNKU7W*l>gsw9K@Ap69V(G}WeuyeGPlunM8aCygxY zS|nN|{2SQJN9lgNCEGWwM&G7wah=&Xl%nTQ=_c3b_N{UHbs@Wcthe8uFF8iMB) zb3xUaS1y0%8~*MCvE2T8*epC9jZHau)#I9}gseAT;J26jGvMCR#Dl7nl?JyevP_#s zV;aAZ5iFgO$1{BlSHd4%K6V)&o)zvh+5b9Ns9wt-sX7A>~n-n6V?1na{H?8*yzL&ykXV`N`@m` z+gjsPj^(4C)v(68*H%DB<2O~pde&!@tk{gMrG^ko`kHRd-_vS_{3;_BulP>Vu3#eaKE6DPL6 z1m#V4=$3NWC`|T7D>ft_3N61(*#2?Hi55EUtdUq1F#2T-Z>|~%Czs_Sc8U+2zOrPH z8MhdXTMUx>H(hFSDmh+zhHeo2-o+9W2J;Ihp*0$llyfY#D<;S)GZWHFVsVKycEgCA zAfrhSH92~^Q=hOseyCgO#$WSBm^0pUYJ9PH3qyF5zE+M(u98wqiU(W#F@abND%qu( z(H@V6VxxcdE?K}ivLU)=_Evi4ko&T9(@xkP>B(LKkeuLEz+u{TiSjp}1oXLS%b54g z#5m~klM`Hvj@_=l)xPg$hb`niM3UCz@W>~W?}H4CH4Y+6&Q(p7&bPrWudULjV+lM_~P^~(QSFX7(0Vo4>$YVcL+)aNq_RX4Ff zJsq=U7GOW}9vz+z&wP4VDvf-L=l0;bNUHePIWE$|5KB6mbVG1byFmm^!7G zk~2CBN;PllN8Y8w<9d4?UqSh+)6dv+ihcp|pjA%I*q^+&&k2jYj)v1GZP2RhALwn1 zj!k=U^Ikf#PdeB@yL+?IHa0~?2)ETTS=>StJ(tb%RtEHZsY6CRCst?m+t{rBenhJx z)kha>kL08(VM$jOVilpz4C9VOiyR%vlnA~|JjpPv>Wd|~nm?O1o+|h_DWica54O-oE#i?^Cl~lrSJm6b2eTs=TBz9XJI=l@rVN<*X>D|tdLf1mf z%c)U!nK^LM&#_j*_8eMjQNP(HT3rRWS2mD$nb~pCPdjU3ta(6Q&P-b>YA>neX|o9@ z%e{oZMEeIKtrRA>b0AuU>H{JZCjkFW3c+>tbHY@pg-f>HgAar!G#=Y}T*ZVvAEx05 zEJ1qJf_s-yYoUnzSRwH^LgwYLT$lB5S}ehs*a5leQ`exsbvcNu!e z{HPm#2HRZ_*Q^+7cD#=UP?xiD`w8E&9kOZ9lWB{cxA*(_bvZXKuybxZjFztHqlFkwIc{9fvrf-9y@<(+;YF7AHq&yKHVT!Y#z73G`0?$@ z&}pX>y$1&&qlbNeFX_+;6j5Xvyw&@dXzs9mXp|849@H{+VK1jNnXcP)j7`IvX7R$! z9N!;mkv69NfN*dtPX0OQX{Ozyrz{%rH45iTZ-}GZd)4A~9{=W~+j8SC*sRz~x_>Gz zRrBTlLfGkWl4vEA6(r%YtM|WoDbHj%j$%UXI5Daq#xesYs0wHbo_$Hwq&Wa0<>St; z6<_AA#0@^k?bV38v`kSYFcPc&R(=`m|54`4!GWMvT6HMPr`YH}u>>WgRqEE=i%O8X z8;$?Yy^DO^`6o1VcuIP_FxvUY6C?A@`7bR=MhgMKO?ENZvkRICyhNCA#-hX+Z2{XrO;$Nka=w6Mty#&8i z3uh^jjs+vRm&*0rT9q%VWS%IUI~HzXqH_+#wBq%CM*SkHz00jNFgwA)Rcc0n=16}`-kdIIP8+V}LJ@?%i+r!`A8_nl;Yx&Dv(V%oO z^sJgJVFp+MYGxay%jcEuwkgF4?BfE% z=b{yJJ5drrKa&O9x=3|;O4DeOB~XV2qCYt87RiHU94yRfzV@8S#U0T~cQAYp5@I{S z5Ne50p%7)o{43M%)`Q$VzgR9Q=WVh~+(D0-IoSZw$pEhG-v7|`!`FR?fR~?h&WI&Q%W>hB_;z1hlt2uPq%W3u(=JKBFN?#Q+#bt$#hcRMzq%=( z9{}$>{bI%x`9T~25ea8eoDAN?IJz}+;VL#S9jpNVtA1|}Uo2r&SE7Ri14dKA)wfyM z>F{zf3vgkSRRHlGrYr(nasXKR))2@^YIMs%bhumTLJx4e6ZCV5QnO-@BtoNkY0H~v z(byiQ11dDpO2aeFYthl4_8O+h&TWrwPf_)`RTP7Y6dgpjDK*EYq@C!v-BQvB*CF2V z6&LCay1G4M=6#FA$!{XDYn3R3=5IcU2JWmC7j$DTExs5e#9p7Fy)*|sq0Z@t!kg~p z_^L__^lbbDQ2P>x;}}Qn8kp!sD?kfzbJ#C?VZSK0Pn>`&T70@Az!)kxBb)&#km5%8 z08|Bzu~n}T?+`nKO{2ZsIk$sgMBjPHYDU^_xIHido&u=Zc=(!t`@j@S&_J5mc(`hi zUyr&UDsX?9XCfz&0#4k+?4n?_7aZn>gCR@gMjD~VQtd^2+s(<6@Ugcub5 zs^27xG>M$#Z@&M$sI z&Z!oXW=8zQ4Cx@?8D~Yt^Q9f|O_FX(8?_HY_2;cJe75K^L@5{pJK zA#8N>)O9`uY2pAAqL@{YJY#ETv+X(Hx~Ju40srfIEJX8UK6Ct_i5*)a4m69uU?^b( zD8*Kl9HNuhuhlt0A)r{4WdQMwaB+Z5t0iXTdsL-lOn3p9m{=|Vlr!Fqo_j1R1za53 z4f&IZ4RwJZ8i<<*s~$p#&o4G+J`uvE(?ox`&%i^j+?bK&`{qCUHWvWQe?@~B<#1iC z;+7g90v zR$f}a&UaUm2dBTWM2~F`zALNJ%nIk>4- zh8VGgiG8BxA^UU`D@fQ)g;M!t1GF?9&_VL%ET>EmSxSs#8-N8QpXidnm^8?y5G)dC zoY6y$mLf*zCMA$3Y21I>Bn%6-Yh@m_z`%RY)LatuLP|Q;sQlqX8zj`>{=nd}&mRo! zdGh6U`sI(vF5ktRq(#TwpOs2~F11_;=i;Wt%_n5${xHO!IZFB{7Xq}O7!Xx_+B#A$ z46J-|`MGdSK+^=^xjkSf^~8h`&T0pIAdI_1R9-2Dpy=#cx|?6min^)3REpcU%QKqR z{qWmaA-tI514A3tde1>nqRbb!F$$GgNmMUPb8TH>)uONUbqOs>HtxKRS!+P~J6i!* z;K8W8gWxvB9lZU>t@^b@|8B^Wb;8p-l*;{~nI(>y^FHr5v^w|2I|7h$B*H+-Okd6q z403PR6y*jfR)VC~dnjgS*qQ=82h-u>gSFaq1{czRrzZ-=K3A_a?2meuz!4L{d4+-S zN!ja#QK1Me=zvf7utwneR)JI%BmB=?Z}7Ij&0eBLNbA(3x4wn$G>6+d7lztxZ1;Yd zK*#ielIX+1+Jptu08S67K{lOT-wZ-l6?ua)rG5~DU)`bDU3)mYU|WhCiZ5zL`)BG4 zc|Ux&PIo%og}9RWE&sCB-_?ipfC{QeKY-hGUYjE|;sECO`G^0Baz0&uxHrSg|hi>7xJ zm&dtl9nM7+pP`#~uDKd)Mu$Tgu*}32TX13t_k7mQLO`-}sAY5fUTXj&{J`xzJP6up zedP+ZgawBfnd(JIy<}g74nBY_jXf810%A#5EhzCETGvZMY!l=04bsuS4J%`jeK1X3 zSM`SC!!BYM}wI+&0HS*O@|Zb=pa8=@X3{r zi@p^Nd8^S^dtm07045S=Wbkpiu;I$#chJ?7GW{8r)aP$Lv%jJu(AJa|~%XvPZ1d&}rS_33L%U%<=H*aBRBPY()X@hq4 zmzS!=SkVqytP_~oQ>uuzr1e^45{5R%Fb>wzvEAjmYMZxxm9+4YKXZGKA}Y=Te$Q*k zvp*W3F^WCouz6md&))cF>(HFSXHJbt$S7D&%J?XxUGS`{0S7^_{)XFRVEik;B`eP_SO(V1_md8-au zcaTpQi2DK4boC}_(Ke$`xs{ANAzd7}PqHp>^W72G<9;cNk%82yo=2Lzt5tD^{MFB! z4|CI1hyz4}sADr?EXacPUd-*(DYX=Q{Tu7x0#8yCCA!;`=Ra9x?;+b6x;ag|0^@%r zzFu!mpP|fm(&sJ&<7A0d!B&G!Gx0MwpELmg^o9Si01ax-X->Qg{LSx6*n-+fgxTW@ zz!6o*udB_0!8Y1Kd)BK}MRmBy^Ba%tiG$U#nD$`*{$@QY}*Hk(+jK^Lo+@2__z5@x9F-%GANo(0Qb=YCP(R*b8>4 zzURjNI;*ZA5L#2vBhN7HE{JKO5e6JAFKbnID3@N!(YF=+GIO?(^(IqPA{I0F-Bzc1 z5T;1VqH7)^CCebWw~BziaH%eLA*Qz`DmIS;@&NLnev~3*h@QEx4TatfLtg*zCx!Dx z#1z(huwCkJ0ZfDoYH&cd*p8fLh)b$Ca3msq?iBK2AHBq1D_1PTB01)g zYB9Tt(pGSwY?m#Aq1{mOHo|(ARy;}!_20B0i|gl)N<7sl&y9r`;c_TBgIbUrv{sy) zEy=Q+dRb&5M{GZHkl%{rj|9Ob!}K!p$;lHgpR3y7%ex5fh5i3Bd1Q8l=U}H&8C|yz z6gxwUgQdv{d-iZvVs^~%V-dK#lL7k)qFbSaB{@{PI@@;~8gq_zmZ+H&z~pHYZN%Yd z9>wyQo848yhMiu=GL@BNjxA|hp0Zu6mlADWmNY0#$tgczuEC?oQeQWwGrMdI$V2J| z<$>+;XTg|*L6%oSeM!NM(`>maZ;(2=rLsN^L)k`kDC3<%DhjR${Nu&1McRBneb~=jd>S*2=Xh5lbFtx zt!v*&u1_P(yPNA7qj~vxa2vpDRJHkrp0)JfRak0GBO$q=v<*YXTC*>JAzKxl-q+z} zvh7lyb2oo>4Oil?+x-BHMd<}G?aTn9mh6l85XL#qwT!+UV&yMx3r(o<6^B$q#DOz9 z<{P|nX=V#t9**Y2dKwlwr9ckN7v-QP^8$J^| zGqoUcymf$m&o?%MW`$eA6Y74##MJuy4G&Q0Ypj<^4KcDu8`P}cXH-{vxJt|49UH}x zy~LTq;R;&8N%$R(x=Y1YFAmR2Y$`aZNk@8wrMzw#%Lmmx)AlSsU^qA%*SN)_;4WBV zdI0X!o%J_aKllG~y|6V{ru&R!Q18!88@Mz_Do2UJW4(F|8c(3Y!EDUD1|ZxTPpA? z=tuV@=Y9+|#A&IXO`L#)bmn^sU9`n)eK8jaoI{0(ugqp;bz~9r=c?R}A3t%-jvHEk z+D9)y&Ynq=M53w#i3EQek+nLnx9HDaPXSa=9^U$|2>?>!UTt(pG+4%xo6XT&~Z^zc)@su?3iWWmG z=v@TI7LAjzOL}Q5=&*RZ?MW`k%f+jv^d3A5!Leh9aUzx+TR1t~y@pX^U0oh#7Un*P zwV!t%`+rBMqpZ3~BW)<-m(+~U+UwD-njvNB2Gbet1pn%Bm{v%i1Fl+OMMg7vHQiu5 zyQN#iCZKJcXHYn@L<9T$B`S>narQkJsu|)DNyKs#d-i3;K0fxwWP&+QKBKdd_dOFL zVQ#jEf+Nq+Ducq3bBgG2O2vH^j8{oM#2{!Kg(cbNpXh|m4pUSx&(XV^G^DmMm~j20 z0amxh-B|2^HQu+T*mXsiU2$h^8uc)Tvd@lEROHRZwFIBqzHr4p(-jGtKP>-f`g0@^(lYb?lcFya9m>9l#T8fJH??`Qk5UswBBT*7uJneBsnr%dC93~SNF}yAr ze_WONIRA;ZT^z8NnX78RI`6pyrN~}zR!qIKpm3a!FzBo=ewJb89mMxTQX^X`J*FP@ z@bb+Miu|?m#cpZwOEH+jFXncYSQBR+KaR(|fz`u#@bU7i(xtTZn$nas^RIN!c$lX6 zExIuhtDr~*wqha%FihDs#byt8d@|uL0Um{NdGT9l`SvyA{~GMULuqKd%<=`ivM zs!obs4f&yffL+ zuZjM%Soy@L_%AQl^vVlpB4Z=U^Ysn>tlu!Z2T0Cd&!9k+lkq6uOH^nhjXw~4(P`as zOc|Tc{(<3;azd@cS4Vo6$FtL{^AxZ+)bQ_-c4*x86)n23SsF(IPy5wIrq!X8wq{CJRfRavY~N-Dj+UR04Vn{M zje*8ESOO)9)9?p0f~qxX4jy9(tXBDS!y#|P`wDZK5kg`38Cp-4*(Uk;U(pt`7r7(? z6nSUZs-~)IXs0ACIm<2a_0I>jcU@@!-E?;zEx#bpHS}0$P26&Fex=%P>BNI2ce>wK znLcb7;v|iE;S@Ena|w0=)gsCVE&(& zQ5?V#_+DrU6sGbJPgCcnkUEvBT0M>?QT^%4a~}s@mfSW)tUpzF@8e@TH72tbhVzje zzT0=3eW6Y^&2o^={Ml;Bs6^u;fXi@JYt%U2vy!@j(vQo}#lOBja73B_Zf)Ck*P%7E zNwtUxq$oD2j$9<=5x!%gK?hG1lz7#`EV3}fz*ss-ee6a!j8!4mlWrl7CJq}^KQQ>H{HE{{_`bU(7? zq*7>6#F9dYmGR}!z?xIk(;hd*2D*kvG8kXW`Q_;O-fp4y&lroZ~B5oacYp`t`W6E#JCejlTKu)?9P z6^d$DQ%!Fe`q6|3hZbXXl_Rh`eI$K{ACdy?aLoNH_a1)&MJDyoOAVK};%+mYvqe#k z>nFhjV-6US#j}XnI3`<2@aWtxL%!(+?LKJx*Dj`Qnu9;))V?HEOd;=7R~#TPfAri49(mU5+bEf3lW9wNV5M(%tWJ$=TWz&gu_yuuH>sv(g>@x zPeIe1PXr$CGdg%SO}1J0-G&qs2}pB6DEx{GKqMqxV(j4Y z?+R}9GsXyW-IU19dX3g<2h|FEtfs~a3X^0ZhgT78m)z%q)rGnwGr%8o{8?WNsFxAy z*_VRVjB&sXh>2RDU*i|MzmV3x#i^&_u#e3gek`|s#0)Y#$|WnHt#g&jEWg~M<)Xi{ zigpq0Fd|D9-!2!Zj%g*8B3lf()g)i_U9dA>mdbHAy_~qt>83*l!keZJeWK-Wefui} z^Z$dy-U*J2&8kRWFLZw8QU1dqZDO2UnV~(&Z#a*Ls;apH{e=CrP22JZIZ=~Dn_ zz%#~C)SLfk;SM4Li72GdV`7Z$b;ybf{m|aeYZzKYNC0&ci^UAB`Y8RNM26T)PkEpr zKl|N779au4BTa^DM9AH=>69m?Mnx?bVo-?|FO4ZxnS2b-k2HBtf@Rw8OX0c5k>pRq zJ^mw~>3#uPMTXy@FLfT}Bg*V-5loB&agn--x17?*)3PFnWeI^o9JBL>u)14JVT{vLz;yj^0E5FH!15WWK!MIyz(+BdN9L SFh}J00WcjC?e}+`Uj7f^vOm-S literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/Right.png b/newIDE/app/resources/examples/space-invaders/GFX/Right.png new file mode 100755 index 0000000000000000000000000000000000000000..ecb529b1339b9116924d9f9b39debaf38de957fd GIT binary patch literal 12265 zcmd72g-)(cS|?YiYOCFX^;?xoIT7TOR3UH^L#m%tAXav1 zwUJFv01yP=*RNVd%xuj+uD@%TRr6Ound=)brA3bd)Who1GfB=HognBN8w)G*@%IfA zuF|*ORZj0ndA%#vP$;FIM}n1Juz;Y~1TX1lJrQO7h^33!)f`< zj^vLQv-+-H``ex#0yAra}4AH0N}^ zPfq3D_9J}~0nwFOekr2HN7>ek5sbK7G@arB5>)NKfgM2cq5M!o6*L!O`uH!TgZo%~ z`4a+&Am^$Xcyk{wW)Bz{M!&-|PqSqLzErKuc6j5uTf0au>lV69+S?*J#s4Zw7-yX3 z&!pZ2ZBqJ;TI}{B*wPCrqiXCVbHOz#bHD0EUMJ3abi)bRG0yT&aa6j8F zoKuTsg>)`AQ#4<4(Mg9Q$0glSaj0->{L$Sq{OtiGPsKIDH3F0Ta~S}$^GbYvMvqrx zG~gui^*w?o*4>#I-aqvp_7wFH-W1#7+vr~}hMmBUSu?;>m1?B}#n-GABvc#&W}*pT zoOEF-26+SMO=(OD{rRck-8}TRcwVa{oOZ{L#3do=_;lt8+aKEIq+6+)UXny60>6Za z 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/enemyBlack5.png b/newIDE/app/resources/examples/space-invaders/GFX/enemyBlack5.png new file mode 100755 index 0000000000000000000000000000000000000000..30e84dada72802c5a32fdf76c52b00ea68614409 GIT binary patch literal 4139 zcmbVP2{@E%-=CsVQL59io*IKt#*8tT8C&)xgLf#Dr7`nhGGojlYpLuCrHKrsXy$0a zNuh{}7@4v(7+F$DNXHa~Lf%K)b>8nf-}k-m`&`d*KllB+|I6>cJlB)z=3+0mMtKbc z0+Dlcupxj?E%1WLtOW1~Pm^BbgafoID?$ItD zr05V5mJG8nhnhy>Kmjy>O@v0$sG%%eq#5k1TpT!Fnnu8&Um@%eGnnO)LZ}zs4Qfqi z0#HLeBREMPje;6u_4JL9SQJ_pibCoeBap@jeFHdBABQx;8DOE`4;ZM8Ne;vjZ0x@4 z0^iJF!EAOI4uOb>h|r5L(4#Yh5c*gw7J)<|P$)QvfU}}P*~CbAC`2NMaa5Uk|zD(pMmv^b;2r&ZK@-P9`A$ zDnJ85*(?yN{}US)OlQ+s!Sw${^v~sgQ2qFl)#}Hu3)jlS#Nh zI+I2OeWuWeK>#8wGzbR$$t2F2PNg$J#h`Ttf1P) zjNm9e{jcWY@i@m&7MmDK0vv73U?4ww6bczf1jzb^1|(xR7QhC=0|B%F9D^hh;rdu( zLwx{)38TNge@?SIXO>9Ik01Ev-^5PqeMGs_05Sf5w5XjcQlX?iy ze#BDQescx!KfV0A_Lma>0SEiW((q@)0$+Z%JRlV8b4;+IO_nL;K_F`?9BnK;yb>$U z?hDHw@fO4l&YhcvQo_xz?YVm9Wls-{7PNf!B*szn;G&d{oDai2Y3+VRJ?QNn3Xkrs zaK6Y+@5_np!TXM5kGG9A5!@S;G@wO*j z?n7==>GZ<0k;VK)$pQP!Er--|gk~rCI`|HBx`t!^-jeCfyiSXr%5*~7YbCr0i9h}H zsdsjEcCp9y4 z2FQa`cchZ!0|Y%iUQI~ZEDg#+G3Sk!kI($%+qZ8;L`Cxu?(3L&ixfhdcG~%tz#IPX z9HB}~bhMjOhjftQN=x~$&mYDH>Sq=dR0Wi%GkhJ#tdrYxhMBp(H4)~$V)0Cn zkiT_1uWtF-$H((Bc$Ajt=OIeXV@Y2g|GAzzaF->>m~31>GW*1TQ9bU9ecb)j#m_p4 zRu^|CTgkk{G%@nM)gCY!D*xn;MA1LhEt2(e)YD+m(a~pX(ZXGe(`&f$s;2L77C2_U ztHpa{rsPn96L0cue}6wmGPlVwOFroZ$d(_kGf-zZvjLf(Q8?;U>lYMxYnI9=o?X>7 z9zI?BZjJq5Y#vl*1GlNlKQb4-&$#31?)^a2W+AG$>%eSXTr*Pk1R9@O7~B#*pw-vc z_mGUbw0&4*@dGV8CtFE*i_OK9V=0pPx%FqGKjOD6z735&o;VUaIM~(I^|3}uN-A#` zFKb)EPNz>=1gEx{h0~VLUH$4}Kg~SD&96(=%G@Z>k8eDTt63AwZQ|t$=f}k}@B0-N ze-WZO&~gGsN@4I5H2y>d+qt@QE&}o?HsjFX=XDa*n9TbD7RGibn&NA!2+ArKO4N5n zc+PB6nW$MzjWu_r(-AZp%|WLl{2bLNZ^y64O?<@zw{P8YxM(bJZ!>+Ac!Q<;$aCLE zLu6;0iaY%}MY!_tRMiY2LRD38>YgQ-^v)t1(anPD(ir`;!VapQurXIC<6CptYY4+P zHE*VyO{pl>Z^J)%?FG#s)gv_=H+B~$)B4zKHWH0~F#Ts=n02z`Pm_CRcCAHIk5QBz za>K^zft~8IR;F!p*J*u1D;XPBWz>1&;c7i)QI7J|T=M^u@(3qu zUrp863CY}ST_z`8lBGd2^u0kuDdoWn`lWZ)`e~&Vu2z%g^3}R+1D`NdA$Bdclb=*m zoy`M0oF0CrF^#kMW3+QAMQ2+lT%3w*AwFWwj3MzQj)TsIB;tO>mDQzp{mR7FIwU*0 z<&3h8(rWRI=4m`N)4|5@0VQGi;Q;QoBqI7r^{=T{MxreC`j&`9;>XY5 zL62^oC*1#Z_?|=5S?V_7o0je8NAM*jU^hs4ZPguq4k@b@a@7zm&10U@&WNMj;}Axz z+)6o+Vq?2z4k1m$QTcI~v{nKHGuo*V?pezDgSM78QBpUtCrd+fFq?DwValQTj!4t zVdy%%?7YWNp3P{ri#uMVA#*Ig>kTTtaoOjUG5f-Q=Pbut8!HD%4u0CfL$akB+UfmL z35OjRGd*5o{MJh#?9A$1AP+gDX10q(9F3eABxMytOZR}WO|Q94~vfNeawAo9uE2RlupD)g0i zi~DSOoew{1W@|i5$AW#4PYLku4sV;v(7a4$Qxkm5Ma_5Hn}=`Yn?)T>mAJA#_HNb{ zR;y!t(Jim$SB-pXTM#`ujC3_GSRq%hU073gyv0jNP%>0KA$_5H)poonPhI?qWGU~A zfW!4sIOhmg~x1kkKpCYjTEj+Z{_39E(;D-rMxp5j@v*st7}ZaMge`-opgP9U*$afMFoQ$2Y{N=uGI~+Ts&A9f_@zlT41rLzVH%(L0z`g%!GM!6Ym% zC)5;DjgrpnhR1!zYsDsBV&_RHEhjIoO2!*3jESp*+sEvS8Sm510P*Qn%dQOjs0wZ>^eX*^ zaK9=B+fIG?wY(lD_Y>QIy@-&@=dSI^xr-!h;n%ijaG2@IhQ+R2jSH5Z5n7^6bmq(1 zw&0Mqq1#(BCk~~oil7cRDA{HiJ<&|qY27d*ZYCr0M~2MTrrGcjw;TbA8d1@9Qky6MfB&IsJ8|& zqhn)4b_4Rbc#ngq;)RM0$1d$=RTTsLN={L@bqL-acv2?X#{Fo>4xx}9RBlv6Qcti< zAV7-}uBU4rv?!0C49=a&D0to(S3sQl-3aBSx<8hbNV14c&RwgZsIqnBl&hrBLkYT0 z(O5i0LW&suH(Kmo=hZ*UbqWvZM#sQ+B-SnVMbKw0(1I z+fZZK;wrI1cJnX`@(a#n_GxOt)RU^ZT}FAthNQWk_wS_0s9%q&6pkNjiBxKvIe9&{ z3ytqCYyTK6lCKMg#!vT763(1zLH_m|Ewa=#%KB7EpM_(PrxxOiP^j8tfp_&6 z*_Bf-#eRV==aQ9Fl>^453NDoOG`_iFO^;g-eoB5V_0__QjJpw^_jTQJuUnSTp5cE7 z8T07owfAkNwRzD47uyH^agxFHF6q+AUKuriBa`uZfpx9hhk0ApWuU0NtMRm}g+m=Y zSu$5F-4q90^3$D(F{?Gx-CgGHU*gK;kM(z8B1XIU!Cd|&PR(f>?!cjQJ=l2k3(Ygd zZ8aH!BG(CW+a{B!x#k+@SP63L`P$}IGn2?Stjy~Ro>k9d%v~O9;x}j04&N@i@h9D+ z*Cfn$eXhoP!G={s2d9AA(drC7<+@}ACVV|!^sJ<$+kCK3ENo%^CPYP2B`%d_w-T?i z)}Ej#-Y>^z=j?&V3Cq3w{Op=0Z{}ROP7752sPRBx&Y9q1opkaRR~{OB_3*R>CSpRh zl6Fc%M?7*>#`h1RNc-qkH(wvil$A$LYq_Ef45siR^voc96*Z0F`uj398xDVLq%|Kq yHD6y}FF|kBsKVN-3OufM(Y>-i_Ae$`F0LOP4)$yqhOS=vop-c#u_?9Mf9#*V$u_J2 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/enemyBlue1.png b/newIDE/app/resources/examples/space-invaders/GFX/enemyBlue1.png new file mode 100755 index 0000000000000000000000000000000000000000..dd0bf7357560dd05633203c6e67a265c0863075f GIT binary patch literal 4448 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 Jy2Q#S?q3#@W^Vuh literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/enemyGreen2.png b/newIDE/app/resources/examples/space-invaders/GFX/enemyGreen2.png new file mode 100755 index 0000000000000000000000000000000000000000..008e1148bc3ed8df7e0616fa7c7427e98d50da8d GIT binary patch literal 4432 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/laserRed06.png b/newIDE/app/resources/examples/space-invaders/GFX/laserRed06.png new file mode 100755 index 0000000000000000000000000000000000000000..7d4960672940234bf8db760df6971d1aaff5b618 GIT binary patch literal 1653 zcmbVNYiJxr9N)wyw5e^4l~~$<%SLR}+vg>B*(H~n-k!;U8_(;tNtHk+yR&y|Zg)1j zo7^RWN}F1W_Jh!hlo-+YA+(^Nsi>itB2rM>Mnz1kgnW^F5Nicr)RsDXFH(uGF3isC z%x`}G_kRy3db&2$ZLK2+Vne)JPU5)+k4g{Ev%B}Y1hIazKdOl16I(E- z(Ma`qeaa(}icAJ*XaF*K)5d6mXy1{yfjS61asZ|cD?FtRXD|t!i>>9 z=D=NJJt=i;P!%<5M+e!SmoR||JwWEotmR7i2vy*f@Y>&IDY5|Z1|w9bFOck05@ZxP zkZff_w92;#WLRYQ5GM*P0aD=jFw2EmK1g%C#D%1wNR}Q7OLH_`O3DwHWZ|y}mGL}V zV%c0S$K-+xa?&g>iXzJitRT=BLA#@t2lBM#HkBD<=&Fukdj_&dpAih8VJ|{qO^YU& zc7@h*OK!prWAngfd4}^%DgZULg0qL6Y(coDvM>uxXn8Ki@)fL|K^}55=x?Yi$2SSU zu2qzZj8%0p&58)ui;ZA2N)A~S?WRU;$R?qSh8-2gMzESqzBRTKbs+GNlR_w44pgG7 zG8v8ffoUU~dksrNIrsh*cc2VB7@_=gniFZREhX@hAV_@ZK|g|A5vm}~&_`E;wzf$^ z%S}+6H5%~1zk)SY(vf2VY_nm4G-PcnO_3E(N>P+W4i=2H3$EOcN23V`=|&bGxXG@a zWIPrP@nR@M3k+XSS5c(6<$AzUVO)+-*guS6XcFL|sEHz=L0HvkRcjfbMO}q-D2z8a z4L}{J<@+*Hhy5%l-`D=<{YM=GS0TvWGLK)Ie)>q=hKmC`TB@F1aHzD(8e}13B%u10 z5TR5*1)xTiwvAi%K#?|=ftd6k@}dZHk?!Sy13S~$TmL2XSgb$mmu=A$_ODhJ&Q_Fo z8IJpgzpOMY{84Fn(87Jr!42)DkH~v*GrSR(J5yVZ^?$iRXcdsE5ch_tk zx^}Miy{X?g;%xh&s%`hp8M}@CyXH?Ms~a~joeKPNbb0>mRCW8d7f;4!IvNwtPuGi~ zxv!|PtI;|BwvKD($=7esZ@i%sjR%^0>nDDFYI^NMN8L5qz<5KfJ}|yVo;fmk>4)d| z?c@gwpDlm+m+?y#MK*lNavk>YZNR-g)I||HlxI^~i7T+_(Qv DwVx{? literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/playerShip1_red.png b/newIDE/app/resources/examples/space-invaders/GFX/playerShip1_red.png new file mode 100755 index 0000000000000000000000000000000000000000..30b9ad57d5ecab3d4abe143809bd20ff07842fdc GIT binary patch literal 3942 zcmbVP3p~^7{~w1^F1b~bGD|MG?1Hh?C?ivmTQ0L=wqeY+wh3cM(#<`EkfNoNR1T5j zb`(;l2)XNMA=fwzQ8vHn;&smNb$MgRaH zYm2dR63sfIu~TZD=zZcX?yYFrK*xA60RU;G)gcDBmaPH+NUD)t+*$5+N00>7-B(Z=#BtJ401)8p`1p&!K6v)lQ4q`_~ll;jTHiP8Mws#@0 z0|^Ks$if`BFBB;v2qLlYz|bHHm5B^Rfxhx0MeEgVFbMb+!U{xz4y+0Uy4yJb(KH4L zXkrLAAV7^_KvRSv6b?bajP-#q2-Fk|F$F`73?NV>1dcR90KY#Vku(O;7wKem@VhM0 z7YgLhV$qRca7ajqVTh3-jo}A|A`l2L1O|q|3`7V6W*C))4>h1Ncl}_nA~6XJGMz=H zQGu(Bcpq9Y3k4Es`ptwO`Wh{j`Q1$-hk--!bTHHqvTD*-Ad#?!qX#o6UxgD1U=oEC zM53~oA}n+bOZTU-XiR_Ff1qAF{+j@iYwhgTWc;HpK|yOGm@Mm4A~U`__lSHf*Ayo^(m2>yH>5CBhd^Jo<(E0&}ft&fpYkvG7ybk4U8F3$Bj%S(n6TJf4M`l z!m~&y(CWDX1YrO%bAdsTP%|XVNN+WQkZ({s8jvv1{}oIm zAbn|!AiT(CauD8+1g2B{K)^LmBGEJojUf^&($46w`?hGb1B2#Eric!hPBxZ6TWd5N zih#onV204I>e|^MZK+Hao=PCuTA@H9{}__VL?qG7%ouNEOf(=M5T*ujh_Q(Q0#7tD z!27}>aDnuV%rI`^5j}{i6)Bs0#6v|C(pDHdoUJi6JvZferg!JZspgrzm)h7xTtTeF4r2C=wq$rk*K0R#}GBN;rGpCQSbcI*6M(Z z``Mff4+?H1IJ!2fB4mLV9|vl%&a?8!8|sb=>IoixL*8Pt?iyDot;{|L7@YzHLlrf_ z9RJTg#vI*?Kq>LZ*3uF>;>r%WGK;$*{TNAA)3~Z8hf;^mC#a#x5Z|eVl_>SNTNuwP z-8;QcObJ>l20VmJxr58|yr-in3cY-O_GjTI#7qM1bp>a;#_mmufd<%#qsIz6Oa-`R zkHGZ+rxz5pxL+L~-<+{tb+ctOGdDNm`qli7Jy2z_2=Dx!TRr{}z5FVa*hX$L`9<3j-?LE+E_S-V zTcwaz-7vny-#5nvE9iqQUf+3il~Q!7iaES-S~ypb{9MM%N}*(6N$$$n*s~`IvJ2ww z+1W(lqb~Qb34@Ey&V4QAVq7P)z>3HzwR0ByZTkBl7aLWUeP%F=3w`=kLgXJc9DruR zy31Zdm~e9PNH}=|_YLQx6!&~z(EXgf=a_O8gUj$6%tTyq6T8~Jy4AbNU2}9EbFW(c z#)B)W(&4CO&X=ad1X&BIZs2cj!vhGLPQK2TS^aWP%A1Lyjgr|+_4N`C zmfocw-oMzx%+HVaHByd9s&}81;~ErqHZNB6v&wtw>t{~A%`np%<+<5xjt+cHc zclFK!3r*%Db3NZipS9nbZ^CYGM2Vf0^9qd7`H<6aEY>zdRd=?2NaBz#`=n)nflqrl z;bZB#%u?*bcCir*)&Q;)?5ziqd+n6kp-R8EPHZJ?PzxI4baVefy_YuP#oOiSW-#pF zO@A8=w=Pr2mVgR<0vE)MKT6SeOuey>mI~1ffTwtFl}OH%aV*(@KR+u#WQU{jO|}({ zX+zVyI^91?#QI7(KPNdJYFi0SHJ1x@lh{`DTF$kSb6-F`gN3&AcSi;+shvF%XEkvd zlz3r0_}27*FQ-SOE!s1lqC>LZ>P;bwRqKMhfB(z&fQay!BifPt(ho%eXX?5`k=<8GmDpK zxXcw_`Liy34;c3JV2xv+-Qi;{M|Mw@cp zpN1W`-PIhGld|fwvvQD&!jZ_8IV0_)7U-`JEUStWM^7~!ZbG6vx6LXN%h6Re_C>C| zp_#$uR-+bkcnE!=%Tc)+t|B9coqU@lbsGIHPpVB>yZ&Ziu)E^x5K{T>lGQ@J_0Qz)MNEyg`{jnuDqmq_Qftp?YXp^#@mlqg+FIP= zYG-wh^DdY5g(}8G=BA{;qUhtwx$N07uziwU|AoQ1>Gh5obz2c5-=oPl>f)8FUG&^mc)XtcT{gE1W=geW z&`*pT#CLmhTZaZz8ZuNfUn%dlOnn@E)VNnoQYO*+wRQnVZl~FALqe!I4!c~}k)<9P z&Mg+6smfil0dGtx$lWb?)d#k#5)61{yd3eM!6%UL53aAt>Y0cch)~*VWyE#wBBi_! z<@R#x%J|Qhb3;FLzm!>`Bu1J6<3Xjpl-ricC2^k*Ue;2zfM&d!NP9n;?@u*;-mR=5 z(TG$_yfI*-*U-;I;W3Ug)BRH8VBxVRI(hBV@>zP@_6Nw;xDxH2ykK9#d?AL!>s$b~ z?wpvA{Y9&x{aXFCR}3YUz%dE2nvt2s3ra_lk}QG+3m>CC{eCQft0*{hrFj-~q4-ko zo(@b-L%o8dyn|uV!zhXc7Z*o;P#(l8P?>Nzq~KA93D4Q;k?-Ap+>cFhAU{yTLgRmZ zG)ZAwN~Id_wspQc4AWLeHnUZfg7;>afr8}5>8 zZ)h4kqa?-uK8;lBGbfR4>mS;loNk2e%c_@olB@~E><7kqrlppbUKl*e&Pxv4h4b_ly0^PuE?9p^DW9_cw~csuR=yunJj`en3wH^0oc@p0;ep zq=BHiNH6~Y{L8yd#I9?Bg@c9Z1B7Lsw#uunjPcsjUMrF{vGuxF&k*W+p3Q75x%a|C zv)SUgU_8JLa7?meB^tYUxa}R9wP^0#P#6l@eIK1IIQ)4j{f=pPf5r07%tyzpv?{gY zJvt08_L7Uc-A~|Drg5SCEB2%TZO>r7$JPb2j3+wpbe}%1j45+_9qp4)ILgS|> zga`KAQ6;=jS1XG;9H0^W?q}X;P{G58y@QMit%=t6QE$LiO9#X7yv=S!Wuu?^uwTqM z1j9_>jqArf1zGitxXPuzk;smy(wBA|fB-6oRL^8=!Zqy;8S3Q*E)AT}+tGC5&-5++pV%#TafVxL zV_Y+3;I=|>0^pqDMI1a_!|#nG`}Owy1vakl5{t}s9*@x;F)DhNx+^_bI5dQ_cE4no zs*zk7zMYZ^ym!`kcwsproY&mja4`21n)k=%n2?;|yG}9;IR?VoFw6RoWTyr_D!Z&N zqYhAAP2C{oGs4zMW@K!Xy-COYl6d&~;MNQL=g)Xga}KPub@N+(Z{UyAO`X5>C|NTe zwX*Nyfq@V2>q<^Lr*k&x15MlYBrs2>u&x1@NsE-D(i6?_6y%*DWu@WS;fC$%!iT38 z^w+m!->fZ-O;gm}E#U5!yN*DAob=d2>tEzqRYX*z&ST0W7A@xPREtqBL~F*hMkHW^ zC6weMOIycq*@CGM-J?gm*Z(x>y+4eR+B3~bO0XZv+wfGqW6!S1mULUt0()j9H(Ix8 zRwt9wqA>62K61yaR>&|m8Gh1U@QT~e@b1j;@Qp7`yL=($Q{#L-*mLCkI@#F{=kv2V f`xe2u$7d}%Z9h+x-yfG>{S&sewzs-(=^gVg_mROC literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/GFX/spaceStation_028.png b/newIDE/app/resources/examples/space-invaders/GFX/spaceStation_028.png new file mode 100755 index 0000000000000000000000000000000000000000..5a22aed6497ac5b1690b4fade415080715f98d54 GIT binary patch literal 3358 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/Kenney Future Narrow.ttf b/newIDE/app/resources/examples/space-invaders/Kenney Future Narrow.ttf new file mode 100755 index 0000000000000000000000000000000000000000..42f2c33a2ad8de72a1a2a706d308824746f5b97a GIT binary patch literal 34856 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 literal 0 HcmV?d00001 diff --git a/newIDE/app/resources/examples/space-invaders/README.md b/newIDE/app/resources/examples/space-invaders/README.md new file mode 100644 index 000000000000..9847904c43ce --- /dev/null +++ b/newIDE/app/resources/examples/space-invaders/README.md @@ -0,0 +1 @@ +A Space Invaders-like game, where you have a turret and shoot on enemies coming from the sky. \ No newline at end of file diff --git a/newIDE/app/resources/examples/space-invaders/space-invaders.json b/newIDE/app/resources/examples/space-invaders/space-invaders.json new file mode 100755 index 000000000000..d70f7c72fbb0 --- /dev/null +++ b/newIDE/app/resources/examples/space-invaders/space-invaders.json @@ -0,0 +1,7183 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 98, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adMobAppId": "", + "folderProject": false, + "linuxExecutableFilename": "", + "macExecutableFilename": "", + "orientation": "landscape", + "packageName": "com.zat.invaders", + "projectFile": "G:\\Games\\Invaders\\invaders.json", + "scaleMode": "linear", + "sizeOnStartupMode": "adaptWidth", + "useExternalSourceFiles": false, + "version": "1.0.0", + "winExecutableFilename": "", + "winExecutableIconFile": "", + "name": "Invaders", + "author": "Zat", + "windowWidth": 960, + "windowHeight": 540, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 10, + "verticalSync": false, + "platformSpecificAssets": {}, + "loadingScreen": { + "showGDevelopSplash": true + }, + "extensions": [ + { + "name": "BuiltinObject" + }, + { + "name": "BuiltinAudio" + }, + { + "name": "BuiltinVariables" + }, + { + "name": "BuiltinTime" + }, + { + "name": "BuiltinMouse" + }, + { + "name": "BuiltinKeyboard" + }, + { + "name": "BuiltinJoystick" + }, + { + "name": "BuiltinCamera" + }, + { + "name": "BuiltinWindow" + }, + { + "name": "BuiltinFile" + }, + { + "name": "BuiltinNetwork" + }, + { + "name": "BuiltinScene" + }, + { + "name": "BuiltinAdvanced" + }, + { + "name": "Sprite" + }, + { + "name": "BuiltinCommonInstructions" + }, + { + "name": "BuiltinCommonConversions" + }, + { + "name": "BuiltinStringInstructions" + }, + { + "name": "BuiltinMathematicalTools" + }, + { + "name": "BuiltinExternalLayouts" + } + ], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "GFX/Background1.jpeg", + "kind": "image", + "metadata": "", + "name": "Background1.jpeg", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/playerShip1_red.png", + "kind": "image", + "metadata": "", + "name": "playerShip1_red.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/enemyGreen2.png", + "kind": "image", + "metadata": "", + "name": "enemyGreen2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "GFX/enemyBlack5.png", + "kind": "image", + "metadata": "", + "name": "enemyBlack5.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/enemyBlue1.png", + "kind": "image", + "metadata": "", + "name": "enemyBlue1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "GFX/spaceStation_028.png", + "kind": "image", + "metadata": "", + "name": "spaceStation_028.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "GFX/laserRed06.png", + "kind": "image", + "metadata": "", + "name": "laserRed06.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "GFX/laserGreen04.png", + "kind": "image", + "metadata": "", + "name": "laserGreen04.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/Base.png", + "kind": "image", + "metadata": "", + "name": "Base.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "GFX/GDevelop.png", + "kind": "image", + "metadata": "", + "name": "GDevelop.png", + "smoothed": true, + "userAdded": false + }, + { + "file": "Audio/laser1.ogg", + "kind": "audio", + "metadata": "", + "name": "laser1.ogg", + "userAdded": true + }, + { + "file": "Audio/laser8.ogg", + "kind": "audio", + "metadata": "", + "name": "laser8.ogg", + "userAdded": true + }, + { + "file": "Audio/twoTone1.ogg", + "kind": "audio", + "metadata": "", + "name": "twoTone1.ogg", + "userAdded": true + }, + { + "file": "Audio/lowRandom.ogg", + "kind": "audio", + "metadata": "", + "name": "lowRandom.ogg", + "userAdded": true + }, + { + "file": "Kenney Future Narrow.ttf", + "kind": "font", + "metadata": "", + "name": "Kenney Future Narrow.ttf", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/Left.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Left.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/Right.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Right.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "GFX/Fire.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Fire.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [ + { + "name": "Score", + "value": "" + } + ], + "layouts": [ + { + "b": 209, + "disableInputWhenNotFocused": true, + "mangledName": "Phase1", + "name": "Phase1", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 209, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": false, + "zoomFactor": 1 + }, + "objectsGroups": [ + { + "name": "Enemy", + "objects": [ + { + "name": "Invader1" + }, + { + "name": "Invader2" + }, + { + "name": "Invader3" + } + ] + } + ], + "variables": [ + { + "name": "Direction", + "value": "" + }, + { + "name": "Score", + "value": "" + }, + { + "name": "InvaderCOUNT", + "value": "" + }, + { + "name": "Delay", + "value": "" + }, + { + "name": "Row", + "value": "" + }, + { + "name": "Invader1", + "value": "" + }, + { + "name": "Invader2", + "value": "" + }, + { + "name": "Invader3", + "value": "" + }, + { + "name": "UFOTime", + "value": "" + }, + { + "name": "BombNUM", + "value": "" + }, + { + "name": "RandVAR", + "value": "" + }, + { + "name": "BombMAX", + "value": "" + }, + { + "name": "BombFREQ", + "value": "" + } + ], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Ship", + "width": 0, + "x": 497, + "y": 459, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 557, + "layer": "", + "locked": true, + "name": "Background", + "width": 1077, + "x": -15, + "y": -14, + "zOrder": -10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Left", + "width": 128, + "x": 11, + "y": 404, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Right", + "width": 128, + "x": 135, + "y": 404, + "zOrder": 3, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Fire", + "width": 128, + "x": 915, + "y": 404, + "zOrder": 4, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Count", + "width": 0, + "x": 746, + "y": 597, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 20, + "layer": "", + "locked": false, + "name": "ScoreNUM", + "width": 89, + "x": 110, + "y": 19, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "ScoreTEXT", + "width": 0, + "x": 25, + "y": 19, + "zOrder": 8, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "BombTextNUM", + "width": 0, + "x": 667, + "y": 599, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "name": "Invader1", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "Invader", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyGreen2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Invader2", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyBlack5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Invader3", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyBlue1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Ship", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "Ship", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "playerShip1_red.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 21, + "y": 16 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 24, + "y": 24 + }, + { + "x": 56, + "y": 24 + }, + { + "x": 56, + "y": 56 + }, + { + "x": 24, + "y": 56 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "name": "Background", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Background1.jpeg", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Bullet", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "extraBorder": 0, + "name": "DestroyOutside", + "type": "DestroyOutsideBehavior::DestroyOutside" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "laserRed06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 4, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Left", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Left.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Right", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Right.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Fire", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Fire.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "ScoreTEXT", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "SCORE:", + "font": "Kenney Future Narrow.ttf", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "bold": false, + "italic": false, + "name": "ScoreNUM", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "00000", + "font": "Kenney Future Narrow.ttf", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "name": "UFO", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "extraBorder": 0, + "name": "DestroyOutside", + "type": "DestroyOutsideBehavior::DestroyOutside" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "spaceStation_028.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Bomb", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "laserGreen04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "Count", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "24", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "bold": false, + "italic": false, + "name": "BombTextNUM", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Text", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "name": "Base", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Base.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Initialise Scene", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"InvaderTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"UFOTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader1", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader2", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader3", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "UFOTime", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "InvaderCOUNT", + "=", + "24" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombFREQ", + "=", + "2" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If game is not running on Mobile do not display the touch controls", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the wave of invaders", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "Invader1", + "<", + "9" + ], + "subInstructions": [] + } + ], + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader1", + "Variable(Invader1)*60\n", + "0", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader1", + "+", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader2", + "Variable(Invader2)*60\n", + "40", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader2", + "+", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader3", + "Variable(Invader3)*60\n", + "80", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader3", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Invaders", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move Invaders each 'Delay' sec", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "Variable(Delay)", + "\"InvaderTimer\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader1", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader1", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader1", + "=", + "20+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader2", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader2", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader2", + "=", + "60+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader3", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader3", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader3", + "=", + "100+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"InvaderTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "lowRandom.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Did an Invader reach the edge of screen?", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Enemy", + "<", + "60" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "Delay", + ">", + "0.1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "-", + "0.1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Enemy", + ">", + "980" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "-1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Did an Invader hit the Base", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Enemy", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Speed of Invaders increases as their numbers diminish", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "18" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "6" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "12" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.3" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "7" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "7" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.2" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "8" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "3" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player Input Move", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player on Mobile", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "LayerVisible" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Left", + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + ">", + "50" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "-", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Right", + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + "<", + "1000" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "+", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Fire", + "", + "yes", + "" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Bullet", + "<", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "Ship.X()", + "Ship.Y()-20", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser8.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player using keyboard", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "LayerVisible" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + ">", + "50" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "-", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Right" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + "<", + "1000" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "+", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Space" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "LControl" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Bullet", + "<", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "Ship.X()", + "Ship.Y()-20", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser8.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Bullets", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bullet", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Bullet", + "-", + "300 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Enemy", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Enemy", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "InvaderCOUNT", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "+", + "10 / Variable(Delay)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Bomb", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Bombs", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Bomb", + "+", + "180 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Bomb", + ">", + "600" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bomb", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "UFO", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "15", + "\"UFOTimer\"" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "UFO", + "0", + "60", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"UFOTimer\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "UFO", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "UFO", + "+", + "90 * TimeDelta()" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "twoTone1.ogg", + "no", + "5", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "UFO", + "Bullet", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "UFO", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "+", + "200" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "UFOTime", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "All Enemies dead? Load Phase1 again, or Phase2, 3 etc if you have more :)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Enemy", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Phase1\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Update GUI", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "=", + "trunc(GlobalVariable(Score))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreNUM", + "=", + "LargeNumberToString(GlobalVariable(Score))" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Invaded!", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Invaders have collided with player ship :( Go back to Title, or a Game Over screen, Leaderboard if you have one.", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Ship", + "Enemy", + "", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Ship", + "Bomb", + "", + "" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Title\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": true, + "folded": false, + "name": "Debugging", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "Count", + "=", + "VariableString(InvaderCOUNT)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "BombTextNUM", + "=", + "VariableString(BombNUM)" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ], + "layers": [ + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "name": "Controls", + "visibility": true, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [] + }, + { + "b": 209, + "disableInputWhenNotFocused": true, + "mangledName": "Title", + "name": "Title", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 209, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": true, + "zoomFactor": 0.784 + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": true, + "height": 206, + "layer": "", + "locked": false, + "name": "Title", + "width": 831, + "x": 178, + "y": 49, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Instruction2", + "width": 0, + "x": 139, + "y": 351, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 557, + "layer": "", + "locked": false, + "name": "Background", + "width": 1077, + "x": -15, + "y": -14, + "zOrder": -3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 87, + "layer": "", + "locked": false, + "name": "NewObject3", + "width": 308, + "x": 518, + "y": 462, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Instruction1", + "width": 0, + "x": 133, + "y": 242, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "name": "Background", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Background1.jpeg", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": true, + "italic": false, + "name": "Title", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "INVADERS", + "font": "Kenney Future Narrow.ttf", + "characterSize": 140, + "color": { + "b": 0, + "g": 0, + "r": 178 + } + }, + { + "bold": false, + "italic": false, + "name": "Instruction1", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Desktop - Left, Right to move base, Ctrl or Space to Fire. \n\nMobile - Use touch controls", + "font": "Kenney Future Narrow.ttf", + "characterSize": 24, + "color": { + "b": 133, + "g": 251, + "r": 250 + } + }, + { + "bold": false, + "italic": false, + "name": "Instruction2", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Touch or press any key to start.", + "font": "Kenney Future Narrow.ttf", + "characterSize": 40, + "color": { + "b": 76, + "g": 218, + "r": 145 + } + }, + { + "name": "NewObject3", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GDevelop.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 277, + "y": 112 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetFullScreen" + }, + "parameters": [ + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "TitleDELAY" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Wait before allowing to start a new game", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "2", + "TitleDELAY" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AnyKeyPressed" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Phase1\"", + "yes" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "layers": [ + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + } + ], + "behaviorsSharedData": [] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file diff --git a/newIDE/app/src/ProjectCreation/BrowserExamples.js b/newIDE/app/src/ProjectCreation/BrowserExamples.js index de440c35092d..4c21fba456f5 100644 --- a/newIDE/app/src/ProjectCreation/BrowserExamples.js +++ b/newIDE/app/src/ProjectCreation/BrowserExamples.js @@ -38,6 +38,7 @@ const exampleNames = [ 'downhill-bike-physics-demo', 'drag-camera-with-mouse', 'drop-collect-items-from-storage', + 'endless-up-runner', 'exit-app', 'facebook-instant-game', 'find-diagonals', @@ -94,6 +95,7 @@ const exampleNames = [ 'shoot-bullets', 'shooting-bullets-explanation', 'snap-object-to-grid', + 'space-invaders', 'space-shooter-with-functions', 'space-shooter', 'splash-screen', diff --git a/newIDE/app/src/ProjectCreation/ExamplesInformation.js b/newIDE/app/src/ProjectCreation/ExamplesInformation.js index 3fe34dc4fd22..29293de82645 100644 --- a/newIDE/app/src/ProjectCreation/ExamplesInformation.js +++ b/newIDE/app/src/ProjectCreation/ExamplesInformation.js @@ -1050,6 +1050,59 @@ module.exports = { } ] }, + "endless-up-runner": { + "description": "A game where the player have to jump on platforms and avoid falling down as the screen goes up. With special objects (spring, rocks), score and Game Over handling!", + "usedExtensions": [ + { + "fullName": "Sprite", + "name": "Sprite" + }, + { + "fullName": "Text object", + "name": "TextObject" + }, + { + "fullName": "Platform Behavior", + "name": "PlatformBehavior" + }, + { + "fullName": "Scene management features", + "name": "BuiltinScene" + }, + { + "fullName": "System information", + "name": "SystemInfo" + }, + { + "fullName": "Variable features", + "name": "BuiltinVariables" + }, + { + "fullName": "Standard events", + "name": "BuiltinCommonInstructions" + }, + { + "fullName": "Keyboard features", + "name": "BuiltinKeyboard" + }, + { + "fullName": "Mouse features", + "name": "BuiltinMouse" + }, + { + "fullName": "Base object", + "name": "BuiltinObject" + }, + { + "fullName": "Cameras and layers features", + "name": "BuiltinCamera" + }, + { + "fullName": "Time", + "name": "BuiltinTime" + } + ] + }, "exit-app": { "description": "Simple example showing how to close your game.", "usedExtensions": [ @@ -2910,6 +2963,67 @@ module.exports = { } ] }, + "space-invaders": { + "description": "A Space Invaders-like game, where you have a turret and shoot on enemies coming from the sky.", + "usedExtensions": [ + { + "fullName": "Sprite", + "name": "Sprite" + }, + { + "fullName": "Text object", + "name": "TextObject" + }, + { + "fullName": "Destroy Outside Screen Behavior", + "name": "DestroyOutsideBehavior" + }, + { + "fullName": "Scene management features", + "name": "BuiltinScene" + }, + { + "fullName": "System information", + "name": "SystemInfo" + }, + { + "fullName": "Variable features", + "name": "BuiltinVariables" + }, + { + "fullName": "Time", + "name": "BuiltinTime" + }, + { + "fullName": "Standard events", + "name": "BuiltinCommonInstructions" + }, + { + "fullName": "Base object", + "name": "BuiltinObject" + }, + { + "fullName": "Cameras and layers features", + "name": "BuiltinCamera" + }, + { + "fullName": "Mouse features", + "name": "BuiltinMouse" + }, + { + "fullName": "Keyboard features", + "name": "BuiltinKeyboard" + }, + { + "fullName": "Audio", + "name": "BuiltinAudio" + }, + { + "fullName": "Window features", + "name": "BuiltinWindow" + } + ] + }, "space-shooter": { "description": "A space shooter game (Shoot 'em up) made with GDevelop.", "usedExtensions": [ diff --git a/newIDE/app/src/ProjectsStorage/BrowserProjectOpener.js b/newIDE/app/src/ProjectsStorage/BrowserProjectOpener.js index 00efd6c754d6..be5e7d2282ba 100644 --- a/newIDE/app/src/ProjectsStorage/BrowserProjectOpener.js +++ b/newIDE/app/src/ProjectsStorage/BrowserProjectOpener.js @@ -27,6 +27,7 @@ import deviceVibration from '../fixtures/device-vibration/device-vibration.json' import downhillBikePhysicsDemo from '../fixtures/downhill-bike-physics-demo/downhill-bike-physics-demo.json'; import dragCameraWithMouse from '../fixtures/drag-camera-with-mouse/drag-camera-with-mouse.json'; import dropCollectItemsFromStorage from '../fixtures/drop-collect-items-from-storage/drop-collect-items-from-storage.json'; +import endlessUpRunner from '../fixtures/endless-up-runner/endless-up-runner.json'; import exitApp from '../fixtures/exit-app/exit-app.json'; import facebookInstantGame from '../fixtures/facebook-instant-game/facebook-instant-game.json'; import findDiagonals from '../fixtures/find-diagonals/find-diagonals.json'; @@ -83,6 +84,7 @@ import shootBulletInParabola from '../fixtures/shoot-bullet-in-parabola/shoot-bu import shootBullets from '../fixtures/shoot-bullets/shoot-bullets.json'; import shootingBulletsExplanation from '../fixtures/shooting-bullets-explanation/shooting-bullets-explanation.json'; import snapObjectToGrid from '../fixtures/snap-object-to-grid/snap-object-to-grid.json'; +import spaceInvaders from '../fixtures/space-invaders/space-invaders.json'; import spaceShooter from '../fixtures/space-shooter/space-shooter.json'; import spaceShooterWithFunctions from '../fixtures/space-shooter-with-functions/space-shooter-with-functions.json'; import splashScreen from '../fixtures/splash-screen/splash-screen.json'; @@ -163,6 +165,8 @@ export default class BrowserProjectOpener { return Promise.resolve(dragCameraWithMouse); } else if (url === 'example://drop-collect-items-from-storage') { return Promise.resolve(dropCollectItemsFromStorage); + } else if (url === 'example://endless-up-runner') { + return Promise.resolve(endlessUpRunner); } else if (url === 'example://exit-app') { return Promise.resolve(exitApp); } else if (url === 'example://facebook-instant-game') { @@ -267,6 +271,8 @@ export default class BrowserProjectOpener { return Promise.resolve(shootingBulletsExplanation); } else if (url === 'example://snap-object-to-grid') { return Promise.resolve(snapObjectToGrid); + } else if (url === 'example://space-invaders') { + return Promise.resolve(spaceInvaders); } else if (url === 'example://space-shooter') { return Promise.resolve(spaceShooter); } else if (url === 'example://space-shooter-with-functions') { diff --git a/newIDE/app/src/fixtures/admob/admob.json b/newIDE/app/src/fixtures/admob/admob.json index 84eea99d3e4a..4acf6dc61755 100644 --- a/newIDE/app/src/fixtures/admob/admob.json +++ b/newIDE/app/src/fixtures/admob/admob.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1230,9 +1230,9 @@ "parameters": [ "ButtonText", "=", - "LoadAtTop.PointX(Centre) - ButtonText.Width()/2", + "LoadAtTop.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAtTop.PointY(Centre) - ButtonText.Height()/2" + "LoadAtTop.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1279,9 +1279,9 @@ "parameters": [ "ButtonText", "=", - "LoadAtBottom.PointX(Centre) - ButtonText.Width()/2", + "LoadAtBottom.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAtBottom.PointY(Centre) - ButtonText.Height()/2" + "LoadAtBottom.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1328,9 +1328,9 @@ "parameters": [ "ButtonText", "=", - "Show.PointX(Centre) - ButtonText.Width()/2", + "Show.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Show.PointY(Centre) - ButtonText.Height()/2" + "Show.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1377,9 +1377,9 @@ "parameters": [ "ButtonText", "=", - "Hide.PointX(Centre) - ButtonText.Width()/2", + "Hide.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Hide.PointY(Centre) - ButtonText.Height()/2" + "Hide.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1426,9 +1426,9 @@ "parameters": [ "ButtonText", "=", - "LoadAtTopAndDisplay.PointX(Centre) - ButtonText.Width()/2", + "LoadAtTopAndDisplay.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAtTopAndDisplay.PointY(Centre) - ButtonText.Height()/2" + "LoadAtTopAndDisplay.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1475,9 +1475,9 @@ "parameters": [ "ButtonText", "=", - "LoadAtBottomAndDisplay.PointX(Centre) - ButtonText.Width()/2", + "LoadAtBottomAndDisplay.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAtBottomAndDisplay.PointY(Centre) - ButtonText.Height()/2" + "LoadAtBottomAndDisplay.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1524,9 +1524,9 @@ "parameters": [ "ButtonText", "=", - "Remove.PointX(Centre) - ButtonText.Width()/2", + "Remove.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Remove.PointY(Centre) - ButtonText.Height()/2" + "Remove.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1573,9 +1573,9 @@ "parameters": [ "ButtonText", "=", - "GoToInterstitials.PointX(Centre) - ButtonText.Width()/2", + "GoToInterstitials.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToInterstitials.PointY(Centre) - ButtonText.Height()/2" + "GoToInterstitials.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -1622,9 +1622,9 @@ "parameters": [ "ButtonText", "=", - "GoToRewardVideos.PointX(Centre) - ButtonText.Width()/2", + "GoToRewardVideos.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToRewardVideos.PointY(Centre) - ButtonText.Height()/2" + "GoToRewardVideos.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -2845,9 +2845,9 @@ "parameters": [ "ButtonText", "=", - "Load.PointX(Centre) - ButtonText.Width()/2", + "Load.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Load.PointY(Centre) - ButtonText.Height()/2" + "Load.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -2894,9 +2894,9 @@ "parameters": [ "ButtonText", "=", - "Display.PointX(Centre) - ButtonText.Width()/2", + "Display.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Display.PointY(Centre) - ButtonText.Height()/2" + "Display.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -2943,9 +2943,9 @@ "parameters": [ "ButtonText", "=", - "LoadAndDisplay.PointX(Centre) - ButtonText.Width()/2", + "LoadAndDisplay.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAndDisplay.PointY(Centre) - ButtonText.Height()/2" + "LoadAndDisplay.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -2992,9 +2992,9 @@ "parameters": [ "ButtonText", "=", - "GoToRewardVideos.PointX(Centre) - ButtonText.Width()/2", + "GoToRewardVideos.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToRewardVideos.PointY(Centre) - ButtonText.Height()/2" + "GoToRewardVideos.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -3041,9 +3041,9 @@ "parameters": [ "ButtonText", "=", - "GoToBanners.PointX(Centre) - ButtonText.Width()/2", + "GoToBanners.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToBanners.PointY(Centre) - ButtonText.Height()/2" + "GoToBanners.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4148,9 +4148,9 @@ "parameters": [ "ButtonText", "=", - "Load.PointX(Centre) - ButtonText.Width()/2", + "Load.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Load.PointY(Centre) - ButtonText.Height()/2" + "Load.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4197,9 +4197,9 @@ "parameters": [ "ButtonText", "=", - "Display.PointX(Centre) - ButtonText.Width()/2", + "Display.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Display.PointY(Centre) - ButtonText.Height()/2" + "Display.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4246,9 +4246,9 @@ "parameters": [ "ButtonText", "=", - "LoadAndDisplay.PointX(Centre) - ButtonText.Width()/2", + "LoadAndDisplay.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "LoadAndDisplay.PointY(Centre) - ButtonText.Height()/2" + "LoadAndDisplay.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4295,9 +4295,9 @@ "parameters": [ "ButtonText", "=", - "ClaimReward.PointX(Centre) - ButtonText.Width()/2", + "ClaimReward.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "ClaimReward.PointY(Centre) - ButtonText.Height()/2" + "ClaimReward.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4344,9 +4344,9 @@ "parameters": [ "ButtonText", "=", - "GoToBanners.PointX(Centre) - ButtonText.Width()/2", + "GoToBanners.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToBanners.PointY(Centre) - ButtonText.Height()/2" + "GoToBanners.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } @@ -4393,9 +4393,9 @@ "parameters": [ "ButtonText", "=", - "GoToInterstitials.PointX(Centre) - ButtonText.Width()/2", + "GoToInterstitials.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "GoToInterstitials.PointY(Centre) - ButtonText.Height()/2" + "GoToInterstitials.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/advanced-shape-based-painter/advanced-shape-based-painter.json b/newIDE/app/src/fixtures/advanced-shape-based-painter/advanced-shape-based-painter.json index 52ee26bd5158..de29b3480dfa 100644 --- a/newIDE/app/src/fixtures/advanced-shape-based-painter/advanced-shape-based-painter.json +++ b/newIDE/app/src/fixtures/advanced-shape-based-painter/advanced-shape-based-painter.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/animation-speed-scale/animation-speed-scale.json b/newIDE/app/src/fixtures/animation-speed-scale/animation-speed-scale.json index 646d221dff80..6e4bd6f2a6e0 100644 --- a/newIDE/app/src/fixtures/animation-speed-scale/animation-speed-scale.json +++ b/newIDE/app/src/fixtures/animation-speed-scale/animation-speed-scale.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/asteroids/asteroids.json b/newIDE/app/src/fixtures/asteroids/asteroids.json index 936d100e2e45..736885345eac 100644 --- a/newIDE/app/src/fixtures/asteroids/asteroids.json +++ b/newIDE/app/src/fixtures/asteroids/asteroids.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -5757,8 +5757,8 @@ "parameters": [ "", "engine_particle", - "player.PointX(engine)", - "player.PointY(engine) + Random(10)", + "player.PointX(\"engine\")", + "player.PointY(\"engine\") + Random(10)", "" ], "subInstructions": [] @@ -6281,8 +6281,8 @@ "parameters": [ "", "engine_particle", - "player.PointX(engine)", - "player.PointY(engine) + Random(10)", + "player.PointX(\"engine\")", + "player.PointY(\"engine\") + Random(10)", "" ], "subInstructions": [] @@ -6658,8 +6658,8 @@ "parameters": [ "", "player_bullet", - "player.PointX(firespot)", - "player.PointY(firespot)", + "player.PointX(\"firespot\")", + "player.PointY(\"firespot\")", "" ], "subInstructions": [] @@ -6917,8 +6917,8 @@ "parameters": [ "", "player_bullet", - "player.PointX(firespot)", - "player.PointY(firespot)", + "player.PointX(\"firespot\")", + "player.PointY(\"firespot\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/basic-ai-with-pathfinding/basic-ai-with-pathfinding.json b/newIDE/app/src/fixtures/basic-ai-with-pathfinding/basic-ai-with-pathfinding.json index 957c14bf7787..374d3fb0c130 100644 --- a/newIDE/app/src/fixtures/basic-ai-with-pathfinding/basic-ai-with-pathfinding.json +++ b/newIDE/app/src/fixtures/basic-ai-with-pathfinding/basic-ai-with-pathfinding.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1718,8 +1718,8 @@ "parameters": [ "", "Alert", - "IA.PointX(Center)", - "IA.PointY(Center)", + "IA.PointX(\"Center\")", + "IA.PointY(\"Center\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/basic-artificial-intelligence/basic-artificial-intelligence.json b/newIDE/app/src/fixtures/basic-artificial-intelligence/basic-artificial-intelligence.json index 4041580e4bfe..b5ccc0cd2bd2 100644 --- a/newIDE/app/src/fixtures/basic-artificial-intelligence/basic-artificial-intelligence.json +++ b/newIDE/app/src/fixtures/basic-artificial-intelligence/basic-artificial-intelligence.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1488,8 +1488,8 @@ "parameters": [ "", "Alert", - "IA.PointX(Center)", - "IA.PointY(Center)", + "IA.PointX(\"Center\")", + "IA.PointY(\"Center\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/basic-topdown-car-driving/basic-topdown-car-driving.json b/newIDE/app/src/fixtures/basic-topdown-car-driving/basic-topdown-car-driving.json index 4b4d009ab9fb..c19070809efb 100644 --- a/newIDE/app/src/fixtures/basic-topdown-car-driving/basic-topdown-car-driving.json +++ b/newIDE/app/src/fixtures/basic-topdown-car-driving/basic-topdown-car-driving.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -3176,8 +3176,8 @@ "parameters": [ "", "etincelle", - "Voiture.PointX(Centre)", - "Voiture.PointY(Centre)", + "Voiture.PointX(\"Centre\")", + "Voiture.PointY(\"Centre\")", "" ], "subInstructions": [] @@ -3190,8 +3190,8 @@ "parameters": [ "", "etincelle", - "Voiture.PointX(Centre)", - "Voiture.PointY(Centre)", + "Voiture.PointX(\"Centre\")", + "Voiture.PointY(\"Centre\")", "" ], "subInstructions": [] @@ -3204,8 +3204,8 @@ "parameters": [ "", "etincelle", - "Voiture.PointX(Centre)", - "Voiture.PointY(Centre)", + "Voiture.PointX(\"Centre\")", + "Voiture.PointY(\"Centre\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/bomb-the-crate/bomb-the-crate.json b/newIDE/app/src/fixtures/bomb-the-crate/bomb-the-crate.json index a7b407f100d2..764c6d12772b 100644 --- a/newIDE/app/src/fixtures/bomb-the-crate/bomb-the-crate.json +++ b/newIDE/app/src/fixtures/bomb-the-crate/bomb-the-crate.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/bouncing-ball-and-rope/bouncing-ball-and-rope.json b/newIDE/app/src/fixtures/bouncing-ball-and-rope/bouncing-ball-and-rope.json index e4237a7acddf..9f4482bb186d 100644 --- a/newIDE/app/src/fixtures/bouncing-ball-and-rope/bouncing-ball-and-rope.json +++ b/newIDE/app/src/fixtures/bouncing-ball-and-rope/bouncing-ball-and-rope.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1657,8 +1657,8 @@ "parameters": [ "Group", "Physics2Behavior", - "Group.PointX(Swing)", - "Group.PointY(Swing)", + "Group.PointX(\"Swing\")", + "Group.PointY(\"Swing\")", "MainChar", "MainChar.X()", "MainChar.Y()", @@ -1714,8 +1714,8 @@ "Rope", "MainChar.X()", "MainChar.Y()", - "Group.PointX(Swing)", - "Group.PointY(Swing)", + "Group.PointX(\"Swing\")", + "Group.PointY(\"Swing\")", "3" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/breakout/breakout.json b/newIDE/app/src/fixtures/breakout/breakout.json index 8de3968c320d..f1650740c487 100644 --- a/newIDE/app/src/fixtures/breakout/breakout.json +++ b/newIDE/app/src/fixtures/breakout/breakout.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/buttons/buttons.json b/newIDE/app/src/fixtures/buttons/buttons.json index 1399786be0ec..ff2393ef34f2 100644 --- a/newIDE/app/src/fixtures/buttons/buttons.json +++ b/newIDE/app/src/fixtures/buttons/buttons.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/car-physics/car-physics.json b/newIDE/app/src/fixtures/car-physics/car-physics.json index e2fcafb0e576..f63648980856 100644 --- a/newIDE/app/src/fixtures/car-physics/car-physics.json +++ b/newIDE/app/src/fixtures/car-physics/car-physics.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1087,11 +1087,11 @@ "parameters": [ "Tire", "Physics2", - "Tire.PointX(Centre)", - "Tire.PointY(Centre)", + "Tire.PointX(\"Centre\")", + "Tire.PointY(\"Centre\")", "Car", - "Tire.PointX(Centre)", - "Tire.PointY(Centre)", + "Tire.PointX(\"Centre\")", + "Tire.PointY(\"Centre\")", "", "", "", diff --git a/newIDE/app/src/fixtures/center-object-within-another/center-object-within-another.json b/newIDE/app/src/fixtures/center-object-within-another/center-object-within-another.json index 4da7c1d87be7..45e1d10d88b8 100644 --- a/newIDE/app/src/fixtures/center-object-within-another/center-object-within-another.json +++ b/newIDE/app/src/fixtures/center-object-within-another/center-object-within-another.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/change-position-of-object/change-position-of-object.json b/newIDE/app/src/fixtures/change-position-of-object/change-position-of-object.json index 356c3cca72b3..310999926a29 100644 --- a/newIDE/app/src/fixtures/change-position-of-object/change-position-of-object.json +++ b/newIDE/app/src/fixtures/change-position-of-object/change-position-of-object.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/change-scale-of-sprites/change-scale-of-sprites.json b/newIDE/app/src/fixtures/change-scale-of-sprites/change-scale-of-sprites.json index 9768bbedd8ad..16257691072c 100644 --- a/newIDE/app/src/fixtures/change-scale-of-sprites/change-scale-of-sprites.json +++ b/newIDE/app/src/fixtures/change-scale-of-sprites/change-scale-of-sprites.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/change-sprite-animation/change-sprite-animation.json b/newIDE/app/src/fixtures/change-sprite-animation/change-sprite-animation.json index c50366c64702..61476f1e92e3 100644 --- a/newIDE/app/src/fixtures/change-sprite-animation/change-sprite-animation.json +++ b/newIDE/app/src/fixtures/change-sprite-animation/change-sprite-animation.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/change-sprite-color/change-sprite-color.json b/newIDE/app/src/fixtures/change-sprite-color/change-sprite-color.json index 1ee55b70c639..2aeefbd2b8b3 100644 --- a/newIDE/app/src/fixtures/change-sprite-color/change-sprite-color.json +++ b/newIDE/app/src/fixtures/change-sprite-color/change-sprite-color.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/character-selection/character-selection.json b/newIDE/app/src/fixtures/character-selection/character-selection.json index 763b31dded7a..568b898db29d 100644 --- a/newIDE/app/src/fixtures/character-selection/character-selection.json +++ b/newIDE/app/src/fixtures/character-selection/character-selection.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/controller-input/controller-input.json b/newIDE/app/src/fixtures/controller-input/controller-input.json index 56fac1615297..ee076e138198 100644 --- a/newIDE/app/src/fixtures/controller-input/controller-input.json +++ b/newIDE/app/src/fixtures/controller-input/controller-input.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/create-object-with-mouseclick/create-object-with-mouseclick.json b/newIDE/app/src/fixtures/create-object-with-mouseclick/create-object-with-mouseclick.json index 76b1cf65d9fc..b09778511784 100644 --- a/newIDE/app/src/fixtures/create-object-with-mouseclick/create-object-with-mouseclick.json +++ b/newIDE/app/src/fixtures/create-object-with-mouseclick/create-object-with-mouseclick.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/custom-font/custom-font.json b/newIDE/app/src/fixtures/custom-font/custom-font.json index cdd008933311..ddc4d8a4ea1f 100644 --- a/newIDE/app/src/fixtures/custom-font/custom-font.json +++ b/newIDE/app/src/fixtures/custom-font/custom-font.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/custom-mouse-pointer/custom-mouse-pointer.json b/newIDE/app/src/fixtures/custom-mouse-pointer/custom-mouse-pointer.json index 084767ab6e01..9748e8f16572 100644 --- a/newIDE/app/src/fixtures/custom-mouse-pointer/custom-mouse-pointer.json +++ b/newIDE/app/src/fixtures/custom-mouse-pointer/custom-mouse-pointer.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/customize-keys-with-lastpressedkey/customize-keys-with-lastpressedkey.json b/newIDE/app/src/fixtures/customize-keys-with-lastpressedkey/customize-keys-with-lastpressedkey.json index 463718bd15b7..c06a18b20707 100644 --- a/newIDE/app/src/fixtures/customize-keys-with-lastpressedkey/customize-keys-with-lastpressedkey.json +++ b/newIDE/app/src/fixtures/customize-keys-with-lastpressedkey/customize-keys-with-lastpressedkey.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/device-orientation-ballgame/device-orientation-ballgame.json b/newIDE/app/src/fixtures/device-orientation-ballgame/device-orientation-ballgame.json index 1f735ec2dfcc..91ed46b0802d 100644 --- a/newIDE/app/src/fixtures/device-orientation-ballgame/device-orientation-ballgame.json +++ b/newIDE/app/src/fixtures/device-orientation-ballgame/device-orientation-ballgame.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/device-orientation-compass/device-orientation-compass.json b/newIDE/app/src/fixtures/device-orientation-compass/device-orientation-compass.json index 7bd4d0746c75..23744a053e7c 100644 --- a/newIDE/app/src/fixtures/device-orientation-compass/device-orientation-compass.json +++ b/newIDE/app/src/fixtures/device-orientation-compass/device-orientation-compass.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/device-vibration/device-vibration.json b/newIDE/app/src/fixtures/device-vibration/device-vibration.json index 4769607ce07a..169ab81acf36 100644 --- a/newIDE/app/src/fixtures/device-vibration/device-vibration.json +++ b/newIDE/app/src/fixtures/device-vibration/device-vibration.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/drag-camera-with-mouse/drag-camera-with-mouse.json b/newIDE/app/src/fixtures/drag-camera-with-mouse/drag-camera-with-mouse.json index fb4338ca6285..a663a2d0d97f 100644 --- a/newIDE/app/src/fixtures/drag-camera-with-mouse/drag-camera-with-mouse.json +++ b/newIDE/app/src/fixtures/drag-camera-with-mouse/drag-camera-with-mouse.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/drop-collect-items-from-storage/drop-collect-items-from-storage.json b/newIDE/app/src/fixtures/drop-collect-items-from-storage/drop-collect-items-from-storage.json index e6bafb378b98..5da9678c7327 100644 --- a/newIDE/app/src/fixtures/drop-collect-items-from-storage/drop-collect-items-from-storage.json +++ b/newIDE/app/src/fixtures/drop-collect-items-from-storage/drop-collect-items-from-storage.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/endless-up-runner/endless-up-runner.json b/newIDE/app/src/fixtures/endless-up-runner/endless-up-runner.json new file mode 100644 index 000000000000..c29ef6e0b537 --- /dev/null +++ b/newIDE/app/src/fixtures/endless-up-runner/endless-up-runner.json @@ -0,0 +1,6007 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 98, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adMobAppId": "", + "folderProject": false, + "linuxExecutableFilename": "", + "macExecutableFilename": "", + "orientation": "landscape", + "packageName": "com.example.gamename", + "projectFile": "C:\\Users\\pc\\Programacion\\gdevelop\\test\\EndlessRunningUp\\game.json", + "scaleMode": "linear", + "sizeOnStartupMode": "", + "useExternalSourceFiles": false, + "version": "1.0.0", + "winExecutableFilename": "", + "winExecutableIconFile": "", + "name": "Project", + "author": "", + "windowWidth": 300, + "windowHeight": 500, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 10, + "verticalSync": false, + "platformSpecificAssets": {}, + "loadingScreen": { + "showGDevelopSplash": true + }, + "extensions": [ + { + "name": "BuiltinObject" + }, + { + "name": "BuiltinAudio" + }, + { + "name": "BuiltinVariables" + }, + { + "name": "BuiltinTime" + }, + { + "name": "BuiltinMouse" + }, + { + "name": "BuiltinKeyboard" + }, + { + "name": "BuiltinJoystick" + }, + { + "name": "BuiltinCamera" + }, + { + "name": "BuiltinWindow" + }, + { + "name": "BuiltinFile" + }, + { + "name": "BuiltinNetwork" + }, + { + "name": "BuiltinScene" + }, + { + "name": "BuiltinAdvanced" + }, + { + "name": "Sprite" + }, + { + "name": "BuiltinCommonInstructions" + }, + { + "name": "BuiltinCommonConversions" + }, + { + "name": "BuiltinStringInstructions" + }, + { + "name": "BuiltinMathematicalTools" + }, + { + "name": "BuiltinExternalLayouts" + } + ], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player.png", + "kind": "image", + "metadata": "", + "name": "player.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_jump_1.png", + "kind": "image", + "metadata": "", + "name": "player_jump_1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_jump_2.png", + "kind": "image", + "metadata": "", + "name": "player_jump_2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_1.png", + "kind": "image", + "metadata": "", + "name": "player_run_1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_2.png", + "kind": "image", + "metadata": "", + "name": "player_run_2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_3.png", + "kind": "image", + "metadata": "", + "name": "player_run_3.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_4.png", + "kind": "image", + "metadata": "", + "name": "player_run_4.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_5.png", + "kind": "image", + "metadata": "", + "name": "player_run_5.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_run_6.png", + "kind": "image", + "metadata": "", + "name": "player_run_6.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_fall_1.png", + "kind": "image", + "metadata": "", + "name": "player_fall_1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/player_fall_2.png", + "kind": "image", + "metadata": "", + "name": "player_fall_2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/grassHalfMid.png", + "kind": "image", + "metadata": "", + "name": "grassHalfMid.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/Rock.png", + "kind": "image", + "metadata": "", + "name": "Rock.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/hitbox.png", + "kind": "image", + "metadata": "", + "name": "hitbox.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/BlackMask.png", + "kind": "image", + "metadata": "", + "name": "BlackMask.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/pauseButton.png", + "kind": "image", + "metadata": "", + "name": "pauseButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/playButton.png", + "kind": "image", + "metadata": "", + "name": "playButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/restartButton.png", + "kind": "image", + "metadata": "", + "name": "restartButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/Feet.png", + "kind": "image", + "metadata": "", + "name": "Feet.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialRight.png", + "kind": "image", + "metadata": "", + "name": "TutorialRight.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialLeft.png", + "kind": "image", + "metadata": "", + "name": "TutorialLeft.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialJump.png", + "kind": "image", + "metadata": "", + "name": "TutorialJump.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialBackground.png", + "kind": "image", + "metadata": "", + "name": "TutorialBackground.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialJumpNext.png", + "kind": "image", + "metadata": "", + "name": "TutorialJumpNext.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialArrow.png", + "kind": "image", + "metadata": "", + "name": "TutorialArrow.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialRocks.png", + "kind": "image", + "metadata": "", + "name": "TutorialRocks.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialWarp1.png", + "kind": "image", + "metadata": "", + "name": "TutorialWarp1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialWarp2.png", + "kind": "image", + "metadata": "", + "name": "TutorialWarp2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialFall.png", + "kind": "image", + "metadata": "", + "name": "TutorialFall.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialMoving.png", + "kind": "image", + "metadata": "", + "name": "TutorialMoving.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/LeftButton.png", + "kind": "image", + "metadata": "", + "name": "LeftButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/RightButton.png", + "kind": "image", + "metadata": "", + "name": "RightButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/JumpButton.png", + "kind": "image", + "metadata": "", + "name": "JumpButton.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/Spring1.png", + "kind": "image", + "metadata": "", + "name": "Spring1.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/Spring2.png", + "kind": "image", + "metadata": "", + "name": "Spring2.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/endless-up-runner/TutorialFall2.png", + "kind": "image", + "metadata": "", + "name": "TutorialFall2.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [ + { + "name": "firstPlay", + "value": "1" + }, + { + "name": "bestScore", + "value": "0" + } + ], + "layouts": [ + { + "b": 30, + "disableInputWhenNotFocused": true, + "mangledName": "Game", + "name": "Game", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 30, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 30, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": false, + "zoomFactor": 1 + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "PlayerSprite", + "width": 0, + "x": 112, + "y": 387, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 280, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": -70, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 70, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 140, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 210, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 0, + "y": 460, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "used", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 111, + "y": 350, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 230, + "y": 240, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 0, + "y": 130, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Player", + "width": 0, + "x": 167, + "y": 423, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Platform", + "width": 0, + "x": 110, + "y": 20, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [ + { + "name": "id", + "value": "4" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 500, + "layer": "Pause", + "locked": false, + "name": "BlackMask", + "width": 300, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GUI", + "locked": false, + "name": "PauseButton", + "width": 0, + "x": 240, + "y": 10, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "Pause", + "locked": false, + "name": "PlayButton", + "width": 0, + "x": 125, + "y": 200, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 500, + "layer": "GameOver", + "locked": false, + "name": "BlackMask", + "width": 300, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "RestartButton", + "width": 0, + "x": 125, + "y": 300, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GUI", + "locked": false, + "name": "ScoreText", + "width": 0, + "x": 10, + "y": 3, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "PlayerFeet", + "width": 0, + "x": 158, + "y": 449, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": -65.556, + "customSize": true, + "height": 15, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 130, + "x": 120, + "y": 268, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 5 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 28, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 147, + "x": 78, + "y": 432, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 3 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 0, + "y": 0, + "zOrder": 0, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 0, + "y": 320, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 1 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 51, + "layer": "Background", + "locked": false, + "name": "TutorialTips", + "width": 115, + "x": 184, + "y": 320, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 2 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "1" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 30, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 171, + "x": 64, + "y": -134, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 9 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "5" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 50, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 93, + "x": 80, + "y": 230, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 4 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 83, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 154, + "x": 75, + "y": 64, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 6 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "2" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 86, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 66, + "x": 232, + "y": 99, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 7 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": true, + "height": 55, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 123, + "x": -16, + "y": 68, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 8 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "3" + } + ] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "FinalScoreTitle", + "width": 0, + "x": 78, + "y": 40, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "FinalScore", + "width": 0, + "x": 135, + "y": 102, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "NewRecord", + "width": 0, + "x": 4, + "y": 175, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "GameOver", + "locked": false, + "name": "BestScore", + "width": 0, + "x": 113, + "y": 242, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 420, + "layer": "GUI", + "locked": false, + "name": "LeftButton", + "width": 150, + "x": 1, + "y": 1, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 420, + "layer": "GUI", + "locked": false, + "name": "RightButton", + "width": 150, + "x": 150, + "y": 0, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 80, + "layer": "GUI", + "locked": false, + "name": "JumpButton", + "width": 300, + "x": 0, + "y": 420, + "zOrder": 0, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 30, + "layer": "", + "locked": false, + "name": "TutorialTips", + "width": 171, + "x": 62, + "y": -415, + "zOrder": 1, + "numberProperties": [ + { + "name": "animation", + "value": 11 + } + ], + "stringProperties": [], + "initialVariables": [ + { + "name": "step", + "value": "5" + } + ] + } + ], + "objects": [ + { + "name": "Player", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "acceleration": 9999, + "canGrabPlatforms": false, + "deceleration": 9999, + "gravity": 1000, + "ignoreDefaultControls": false, + "jumpSpeed": 680, + "maxFallingSpeed": 700, + "maxSpeed": 160, + "name": "PlatformerObject", + "roundCoordinates": true, + "slopeMaxAngle": 60, + "type": "PlatformBehavior::PlatformerObjectBehavior", + "xGrabTolerance": 10, + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "hitbox.png", + "points": [ + { + "name": "Sprite", + "x": -20, + "y": -15 + }, + { + "name": "Feet", + "x": 0, + "y": 48 + } + ], + "originPoint": { + "name": "origine", + "x": 12, + "y": 24 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayerFeet", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Feet.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayerSprite", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "idle", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "run", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_run_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_3.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_4.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_6.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_run_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "jump", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_jump_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_jump_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "fall", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.05, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "player_fall_1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + }, + { + "hasCustomCollisionMask": false, + "image": "player_fall_2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Platform", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "canBeGrabbed": true, + "name": "Platform", + "platformType": "Jumpthru", + "type": "PlatformBehavior::PlatformBehavior", + "yGrabOffset": 0 + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "grassHalfMid.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Rock", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Rock.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "ScoreText", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "0", + "font": "", + "characterSize": 50, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "name": "BlackMask", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "BlackMask.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PauseButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "pauseButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Spring", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Spring1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 15, + "y": 25 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Spring2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 35, + "y": 38 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "PlayButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "playButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "RestartButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "restartButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "TutorialTips", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialBackground.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialLeft.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialRight.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialJump.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialJumpNext.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialArrow.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialRocks.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialWarp1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialWarp2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialMoving.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialFall.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + }, + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "TutorialFall2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "FinalScoreTitle", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "SCORE:", + "font": "", + "characterSize": 40, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "bold": false, + "italic": false, + "name": "FinalScore", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "0", + "font": "", + "characterSize": 50, + "color": { + "b": 240, + "g": 240, + "r": 240 + } + }, + { + "bold": true, + "italic": false, + "name": "NewRecord", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "NEW RECORD!", + "font": "", + "characterSize": 40, + "color": { + "b": 40, + "g": 193, + "r": 233 + } + }, + { + "bold": false, + "italic": false, + "name": "BestScore", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "BEST: 0", + "font": "", + "characterSize": 20, + "color": { + "b": 40, + "g": 193, + "r": 233 + } + }, + { + "name": "LeftButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "LeftButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "RightButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "RightButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "JumpButton", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 0.08, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "JumpButton.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Initialization", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Variables meaning:\nmovingCamera: 1 to move the camera upwards, 0 to stop it (used in the tutorial)\nmovingSpeed: Speed in pixels/second the camera will move\nincreasedSpeedPerScore: How much the speed is increased per score point\nmaxMovingSpeed: The maximum speed the camera can move at\ntopY: The top position where there's the topmost platform\nplatformDistance: The distance between created platforms\nrandomPlatformDistance: A small random offset to add to the distance\nthrowRocks: 1 to throw rocks, 0 to stop doing so, used in the tutorial\nrockTime: Time between each rock\nrockWidth: The width of the rock sprite, to create the rock in a single action\nrockSpeed: The speed in pixels/second the rocks will fall\nspringChance: The chance a spring will appear over a new platform, 100 means 100% chance.\nspringWidth: The width of the spring base\ncommonJumpSpeed: The common jump speed, needed to reset after a spring jump\nspringJumpSpeed: The jump speed when a spring is used\nspringJumping: 1 if the player is in the middle of a spring jump, 0 otherwise\ngamePaused: 1 to pause the game, 0 to continue\ngameRunning: 0 to run game over scripts, 1 to continue", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingSpeed", + "=", + "10" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "increasedSpeedPerScore", + "=", + "0.5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "maxMovingSpeed", + "=", + "100" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "topY", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "platformDistance", + "=", + "90" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "randomPlatformDistance", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockTime", + "=", + "4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockWidth", + "=", + "50" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "rockSpeed", + "=", + "80" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springChance", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springWidth", + "=", + "20" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "commonJumpSpeed", + "=", + "680" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumpSpeed", + "=", + "2000" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Set layers visibility and hide helper objects", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"GUI\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"GameOver\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "Player" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "PlayerFeet" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "TutorialTips" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "NewRecord" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Player controls", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Hide the buttons, they have an image only for better visualization during edition", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "LeftButton" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "RightButton" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "JumpButton" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Enable multitouch on mobiles", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "TouchSimulateMouse" + }, + "parameters": [ + "", + "no" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Don't read inputs if game is paused", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to the left if left key is pressed or click on left button on mobile", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "LeftButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateLeftKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "FlipX" + }, + "parameters": [ + "PlayerSprite", + "yes" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move to the right if right key is pressed or click on right button on mobile", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Right" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "RightButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateRightKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "FlipX" + }, + "parameters": [ + "PlayerSprite", + "no" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Jump if up key is pressed or click on jump button on mobile\nIt works a single time per press (because the trigger once)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Up" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "JumpButton", + "Left", + "", + "" + ], + "subInstructions": [] + } + ] + } + ] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "On floor animations, note that only one animation can be set at a time", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PlatformBehavior::IsMoving" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"idle\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsMoving" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"run\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "On air animations, note that only once animation can be set a time", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsJumping" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"jump\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"fall\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Teleport to the right if the player is totally out at left side", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Player", + "<", + "-Player.Width()/2" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Player", + "+", + "SceneWindowWidth() + Player.Width()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Teleport to the left if the player is totally out at right side", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Player", + ">", + "SceneWindowWidth() + Player.Width()/2" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Player", + "-", + "SceneWindowWidth() + Player.Width()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the player sprite and feet (helper objects) over the player object\nIt is done while the game is running only, this way on game over we can move the sprite as we want", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreXY" + }, + "parameters": [ + "PlayerSprite", + "=", + "Player.PointX(\"Sprite\")", + "=", + "Player.PointY(\"Sprite\")" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreXY" + }, + "parameters": [ + "PlayerFeet", + "=", + "Player.PointX(\"Feet\")", + "=", + "Player.PointY(\"Feet\")" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Tutorial", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Deactivate camera movement and rocks throwing the first time to run the tutorial\nfirstPlay is a global variable with a starting value of 1", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarGlobal" + }, + "parameters": [ + "firstPlay", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Show the first tips (controls and background)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "1" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "TutorialTips", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Each time the player is over a new platform, deactivate the previous tips and show the next ones", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "PlayerFeet", + "Platform", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "Platform.Variable(id)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Cache" + }, + "parameters": [ + "TutorialTips" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "TutorialTips", + "step", + "=", + "Platform.Variable(id) + 1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "TutorialTips", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "In the second step (first platform) create a rock", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "id", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "throwRocks", + "Rock", + "SceneWindowWidth()/2 - Variable(rockWidth)/2", + "- Variable(rockWidth) - 250", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Rock", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AddForceXY" + }, + "parameters": [ + "Rock", + "0", + "Variable(rockSpeed)", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "In the last step flag the tutorial as complete setting the firstPlay global variable to 0, reset the scene since now won't launch the tutorial again\nAlso start moving the camera and throwing rocks", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "id", + "=", + "4" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "firstPlay", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Scoring", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If player steps on a new platform, add score and flag the platform as \"used\" to not give scores anymore\nNote that the score is not increased by 1 but by the amount of platforms, in this game it makes no difference, but this way if the player steps on two platforms at the same time the score will be increased by 2\nAlso update the text that shows the score", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "PlayerFeet", + "Platform", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "score", + "+", + "Count(Platform)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreText", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player is in a spring jump it won't step on platforms, instead increase the score by the platforms it leaves below\nAgain, the score is increased by the amount of platforms, in case it moves too fast and leaves more than one platform behind in a single frame", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springJumping", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Platform", + ">", + "Player.Y() + Player.Height()" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarObjet" + }, + "parameters": [ + "Platform", + "used", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "score", + "+", + "Count(Platform)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreText", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Camera movement", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only move the camera if it's enabled\nMove the camera by the base speed + increased speed per platform times the number of platforms, everything limited by the maximum speed", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "movingCamera", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "totalMovingSpeed", + "=", + "min(Variable(movingSpeed) + Variable(increasedSpeedPerScore)*Variable(score), Variable(maxMovingSpeed))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "-", + "Variable(totalMovingSpeed)*TimeDelta()", + "", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the camera upward so the player is never off-focus\nOnly do it while the game is running, because in game over the player is deleted", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + ">", + "Player.Y()", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "=", + "Player.Y()", + "", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The player is totally behind the camera, game over", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Player", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Platforms", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The camera top border is over the last platform position, create a new platform above and update the top platform limit\nAlso set a random value between 1 and 100 to decide if a spring must be created", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CameraY" + }, + "parameters": [ + "", + "<", + "Variable(topY) + CameraHeight(\"\",0)/2 + Platform.Height()", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "topY", + "-", + "Variable(platformDistance) + Random(Variable(randomPlatformDistance))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "randomX", + "=", + "Random(SceneWindowWidth() - Platform.Width())" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Platform", + "Variable(randomX)", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Platform", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springRandom", + "=", + "RandomInRange(1, 100)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "The random value is inside the spring random chance, create the spring in a valid position over the platform", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springRandom", + "<=", + "Variable(springChance)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Spring", + "Variable(randomX) + Random(Platform.Width() - Variable(springWidth))", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Spring", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete platforms totally outside the camera view (plus player height so the player can stand in the edge a bit more)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Platform", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + Player.Height() + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Platform", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Rocks", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Only throw rocks if it's enabled", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "throwRocks", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create a rock above the camera limit (so the player can't see it being created) every rockTime seconds, and move it downwards", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "Variable(rockTime)", + "\"throwRock\"" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"throwRock\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Rock", + "Random(300) - Variable(rockWidth)/2", + "Variable(topY)", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangePlan" + }, + "parameters": [ + "Rock", + "=", + "5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AddForceXY" + }, + "parameters": [ + "Rock", + "0", + "Variable(rockSpeed)", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Rotate the rock to make it look a bit better", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "Rotate" + }, + "parameters": [ + "Rock", + "90", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Delete rocks totally outside the camera view", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Rock", + ">", + "CameraY(\"\",0) + CameraHeight(\"\",0)/2 + Player.Height() + 20" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Rock", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player collides with a rock, game over\nDon't kill the player if it's in a spring jump, that would be super unfair", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Rock", + "", + "", + "yes" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Spring", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset to common jump speed if the player is on floor", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsOnFloor" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::JumpSpeed" + }, + "parameters": [ + "Player", + "PlatformerObject", + "=", + "Variable(commonJumpSpeed)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the player is falling on a spring, increase the jump speed and launch it to the moon, also flag it as \"in a spring jump\"", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::IsFalling" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Player", + "Spring", + "", + "", + "no" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "PlatformBehavior::JumpSpeed" + }, + "parameters": [ + "Player", + "PlatformerObject", + "=", + "Variable(springJumpSpeed)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SetCanJump" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlatformBehavior::SimulateJumpKey" + }, + "parameters": [ + "Player", + "PlatformerObject" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeAnimation" + }, + "parameters": [ + "Spring", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "springJumping", + "=", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": true, + "name": "Pause", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Controls to pause only works while the game is running", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Keyboard controls, switch the pause variable (0 to 1, or 1 to 0)", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "p" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1 - Variable(gamePaused)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Unpause, common time scale and hidden pause layer", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Pause, time scale to 0 (so every moving thing won't move anymore) and show the pause layer", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Allow both desktop click and touch on the pause button", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Same than before, pause and unpause", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "PauseButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gamePaused", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "PlayButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "gamePaused", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ChangeLayerTimeScale" + }, + "parameters": [ + "", + "\"\"", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Pause\"" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Game over", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Game over events run only on game over/game not running", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "gameRunning", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "This event and its sub-events will run a single time on game over\nDelete the player (but leave the sprite), show the game over layer and update the final score text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Once" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Player", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ShowLayer" + }, + "parameters": [ + "", + "\"GameOver\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "FinalScore", + "=", + "ToString(Variable(score))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "FinalScore", + "=", + "SceneWindowWidth()/2 - FinalScore.Width()/2" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If the new score is higher than the best score, update the best score and show the new record text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "score", + ">", + "GlobalVariable(bestScore)" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Montre" + }, + "parameters": [ + "NewRecord", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "bestScore", + "=", + "Variable(score)" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Update the best score text", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "BestScore", + "=", + "\"BEST: \" + ToString(GlobalVariable(bestScore))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "BestScore", + "=", + "SceneWindowWidth()/2 - BestScore.Width()/2" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move the player sprite downwards, for a small falling effect when hit by a rock", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetAnimationName" + }, + "parameters": [ + "PlayerSprite", + "\"fall\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "PlayerSprite", + "+", + "400*TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 250, + "g": 200, + "r": 200, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Reset button clicked or touched, reset the scene", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ] + }, + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "RestartButton", + "", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Game\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "parameters": [] + } + ], + "layers": [ + { + "name": "Background", + "visibility": true, + "cameras": [], + "effects": [] + }, + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "name": "GUI", + "visibility": false, + "cameras": [], + "effects": [] + }, + { + "name": "Pause", + "visibility": false, + "cameras": [], + "effects": [] + }, + { + "name": "GameOver", + "visibility": false, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [ + { + "name": "Platform", + "type": "PlatformBehavior::PlatformBehavior" + }, + { + "name": "PlatformerObject", + "type": "PlatformBehavior::PlatformerObjectBehavior" + } + ] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file diff --git a/newIDE/app/src/fixtures/exit-app/exit-app.json b/newIDE/app/src/fixtures/exit-app/exit-app.json index 23a3026c0cc5..81f2fc6f91bc 100644 --- a/newIDE/app/src/fixtures/exit-app/exit-app.json +++ b/newIDE/app/src/fixtures/exit-app/exit-app.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/facebook-instant-game/facebook-instant-game.json b/newIDE/app/src/fixtures/facebook-instant-game/facebook-instant-game.json index 17abaf5308a4..e1ebc69a1cae 100644 --- a/newIDE/app/src/fixtures/facebook-instant-game/facebook-instant-game.json +++ b/newIDE/app/src/fixtures/facebook-instant-game/facebook-instant-game.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/find-diagonals/find-diagonals.json b/newIDE/app/src/fixtures/find-diagonals/find-diagonals.json index f13910bdc5b7..1c310f01be42 100644 --- a/newIDE/app/src/fixtures/find-diagonals/find-diagonals.json +++ b/newIDE/app/src/fixtures/find-diagonals/find-diagonals.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -885,8 +885,8 @@ "parameters": [ "", "Mask", - "Box.PointX(Centre)", - "Box.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", "" ], "subInstructions": [] @@ -1692,8 +1692,8 @@ "parameters": [ "", "Mask", - "Box.PointX(Centre) + cos(3.14159/4 + 3.14159*Variable(direction)/2)*Variable(distance)*100*sqrt(2)", - "Box.PointY(Centre) + sin(3.14159/4 + 3.14159*Variable(direction)/2)*Variable(distance)*100*sqrt(2)", + "Box.PointX(\"Centre\") + cos(3.14159/4 + 3.14159*Variable(direction)/2)*Variable(distance)*100*sqrt(2)", + "Box.PointY(\"Centre\") + sin(3.14159/4 + 3.14159*Variable(direction)/2)*Variable(distance)*100*sqrt(2)", "" ], "subInstructions": [] @@ -2425,7 +2425,7 @@ "parameters": [ "x", "=", - "Box.PointX(Centre)" + "Box.PointX(\"Centre\")" ], "subInstructions": [] }, @@ -2437,7 +2437,7 @@ "parameters": [ "y", "=", - "Box.PointY(Centre)" + "Box.PointY(\"Centre\")" ], "subInstructions": [] }, @@ -2544,7 +2544,7 @@ "value": "Egal" }, "parameters": [ - "Box.PointX(Centre)", + "Box.PointX(\"Centre\")", ">", "Variable(dest_x) - 5" ], @@ -2556,7 +2556,7 @@ "value": "Egal" }, "parameters": [ - "Box.PointX(Centre)", + "Box.PointX(\"Centre\")", "<", "Variable(dest_x) + 5" ], @@ -2568,7 +2568,7 @@ "value": "Egal" }, "parameters": [ - "Box.PointY(Centre)", + "Box.PointY(\"Centre\")", ">", "Variable(dest_y) - 5" ], @@ -2580,7 +2580,7 @@ "value": "Egal" }, "parameters": [ - "Box.PointY(Centre)", + "Box.PointY(\"Centre\")", "<", "Variable(dest_y) + 5" ], diff --git a/newIDE/app/src/fixtures/health-bar/health-bar.json b/newIDE/app/src/fixtures/health-bar/health-bar.json index 2b960d21bdf9..af2ac89861c0 100644 --- a/newIDE/app/src/fixtures/health-bar/health-bar.json +++ b/newIDE/app/src/fixtures/health-bar/health-bar.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/infinite-scrolling-background/infinite-scrolling-background.json b/newIDE/app/src/fixtures/infinite-scrolling-background/infinite-scrolling-background.json index 1d804db9c361..96a02bd2484d 100644 --- a/newIDE/app/src/fixtures/infinite-scrolling-background/infinite-scrolling-background.json +++ b/newIDE/app/src/fixtures/infinite-scrolling-background/infinite-scrolling-background.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/inventory-system/inventory-system.json b/newIDE/app/src/fixtures/inventory-system/inventory-system.json index 4161a7b3f042..cc0ae45af665 100644 --- a/newIDE/app/src/fixtures/inventory-system/inventory-system.json +++ b/newIDE/app/src/fixtures/inventory-system/inventory-system.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -3116,8 +3116,8 @@ "parameters": [ "", "slot_text", - "inventory_slot.PointX(slot_text)", - "inventory_slot.PointY(slot_text)", + "inventory_slot.PointX(\"slot_text\")", + "inventory_slot.PointY(\"slot_text\")", "\"inventory\"" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/isometric-game/isometric-game.json b/newIDE/app/src/fixtures/isometric-game/isometric-game.json index 032705850b5d..db5ae33ab920 100644 --- a/newIDE/app/src/fixtures/isometric-game/isometric-game.json +++ b/newIDE/app/src/fixtures/isometric-game/isometric-game.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/javascript-blocks-in-platformer/javascript-blocks-in-platformer.json b/newIDE/app/src/fixtures/javascript-blocks-in-platformer/javascript-blocks-in-platformer.json index 67c52f7776a1..0fbcc0c36d64 100644 --- a/newIDE/app/src/fixtures/javascript-blocks-in-platformer/javascript-blocks-in-platformer.json +++ b/newIDE/app/src/fixtures/javascript-blocks-in-platformer/javascript-blocks-in-platformer.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/keyboard-practice/keyboard-practice.json b/newIDE/app/src/fixtures/keyboard-practice/keyboard-practice.json index dc5dd4ae03c2..db9ac27cb285 100644 --- a/newIDE/app/src/fixtures/keyboard-practice/keyboard-practice.json +++ b/newIDE/app/src/fixtures/keyboard-practice/keyboard-practice.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/level-editor/level-editor.json b/newIDE/app/src/fixtures/level-editor/level-editor.json index 82a710b3cf2b..1d6f6db7de4e 100644 --- a/newIDE/app/src/fixtures/level-editor/level-editor.json +++ b/newIDE/app/src/fixtures/level-editor/level-editor.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/load-image-from-url/load-image-from-url.json b/newIDE/app/src/fixtures/load-image-from-url/load-image-from-url.json index 775af3fcede6..66ccf7fdc962 100644 --- a/newIDE/app/src/fixtures/load-image-from-url/load-image-from-url.json +++ b/newIDE/app/src/fixtures/load-image-from-url/load-image-from-url.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/magnet/magnet.json b/newIDE/app/src/fixtures/magnet/magnet.json index eb50da5547e7..fab481a6286f 100644 --- a/newIDE/app/src/fixtures/magnet/magnet.json +++ b/newIDE/app/src/fixtures/magnet/magnet.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -1191,8 +1191,8 @@ "parameters": [ "", "small_magnet", - "Hole.PointX(Centre)", - "Hole.PointY(Centre)", + "Hole.PointX(\"Centre\")", + "Hole.PointY(\"Centre\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/manipulate-text-object/manipulate-text-object.json b/newIDE/app/src/fixtures/manipulate-text-object/manipulate-text-object.json index d6e2e192987f..9cc72341d470 100644 --- a/newIDE/app/src/fixtures/manipulate-text-object/manipulate-text-object.json +++ b/newIDE/app/src/fixtures/manipulate-text-object/manipulate-text-object.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-camera-to-position/move-camera-to-position.json b/newIDE/app/src/fixtures/move-camera-to-position/move-camera-to-position.json index 94b43f4b5360..00fc15953895 100644 --- a/newIDE/app/src/fixtures/move-camera-to-position/move-camera-to-position.json +++ b/newIDE/app/src/fixtures/move-camera-to-position/move-camera-to-position.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-object-back-and-forth/move-object-back-and-forth.json b/newIDE/app/src/fixtures/move-object-back-and-forth/move-object-back-and-forth.json index 9a0de2e1bf29..1786b042f7f7 100644 --- a/newIDE/app/src/fixtures/move-object-back-and-forth/move-object-back-and-forth.json +++ b/newIDE/app/src/fixtures/move-object-back-and-forth/move-object-back-and-forth.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-object-in-circle/move-object-in-circle.json b/newIDE/app/src/fixtures/move-object-in-circle/move-object-in-circle.json index 345ee6aa5e03..e93ed22f76d8 100644 --- a/newIDE/app/src/fixtures/move-object-in-circle/move-object-in-circle.json +++ b/newIDE/app/src/fixtures/move-object-in-circle/move-object-in-circle.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-object-toward-position/move-object-toward-position.json b/newIDE/app/src/fixtures/move-object-toward-position/move-object-toward-position.json index 2de95214a5c5..d2caf80ff800 100644 --- a/newIDE/app/src/fixtures/move-object-toward-position/move-object-toward-position.json +++ b/newIDE/app/src/fixtures/move-object-toward-position/move-object-toward-position.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-object-with-mouse-joint/move-object-with-mouse-joint.json b/newIDE/app/src/fixtures/move-object-with-mouse-joint/move-object-with-mouse-joint.json index 3fb0dcc84b61..3109c3aea48d 100644 --- a/newIDE/app/src/fixtures/move-object-with-mouse-joint/move-object-with-mouse-joint.json +++ b/newIDE/app/src/fixtures/move-object-with-mouse-joint/move-object-with-mouse-joint.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/move-object-with-physics/move-object-with-physics.json b/newIDE/app/src/fixtures/move-object-with-physics/move-object-with-physics.json index d4fa79e93dd6..5103358db229 100644 --- a/newIDE/app/src/fixtures/move-object-with-physics/move-object-with-physics.json +++ b/newIDE/app/src/fixtures/move-object-with-physics/move-object-with-physics.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/multitouch/multitouch.json b/newIDE/app/src/fixtures/multitouch/multitouch.json index 84a95e18c135..0aaeb417c64c 100644 --- a/newIDE/app/src/fixtures/multitouch/multitouch.json +++ b/newIDE/app/src/fixtures/multitouch/multitouch.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/object-gravity/object-gravity.json b/newIDE/app/src/fixtures/object-gravity/object-gravity.json index 279882d91331..9db14e8f55d4 100644 --- a/newIDE/app/src/fixtures/object-gravity/object-gravity.json +++ b/newIDE/app/src/fixtures/object-gravity/object-gravity.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -679,10 +679,10 @@ "SpaceGuy", "Physics2", "5", - "Planet.PointX(Centre)", - "Planet.PointY(Centre)", - "SpaceGuy.PointX(Centre)", - "SpaceGuy.PointY(Centre)" + "Planet.PointX(\"Centre\")", + "Planet.PointY(\"Centre\")", + "SpaceGuy.PointX(\"Centre\")", + "SpaceGuy.PointY(\"Centre\")" ], "subInstructions": [] } @@ -762,8 +762,8 @@ "Physics2", "SpaceGuy.Angle() - 90", "1", - "SpaceGuy.PointX(Centre)", - "SpaceGuy.PointY(Centre)" + "SpaceGuy.PointX(\"Centre\")", + "SpaceGuy.PointY(\"Centre\")" ], "subInstructions": [] } @@ -835,8 +835,8 @@ "Physics2", "SpaceGuy.Angle()", "0.5", - "SpaceGuy.PointX(Centre)", - "SpaceGuy.PointY(Centre)" + "SpaceGuy.PointX(\"Centre\")", + "SpaceGuy.PointY(\"Centre\")" ], "subInstructions": [] } @@ -893,8 +893,8 @@ "Physics2", "SpaceGuy.Angle()+180", "0.5", - "SpaceGuy.PointX(Centre)", - "SpaceGuy.PointY(Centre)" + "SpaceGuy.PointX(\"Centre\")", + "SpaceGuy.PointY(\"Centre\")" ], "subInstructions": [] } @@ -929,8 +929,8 @@ }, "parameters": [ "SpaceGuy", - "Planet.PointX(Centre)", - "Planet.PointY(Centre)", + "Planet.PointX(\"Centre\")", + "Planet.PointY(\"Centre\")", "0", "" ], diff --git a/newIDE/app/src/fixtures/object-selection/object-selection.json b/newIDE/app/src/fixtures/object-selection/object-selection.json index fc5463f3129a..2901b5f9a614 100644 --- a/newIDE/app/src/fixtures/object-selection/object-selection.json +++ b/newIDE/app/src/fixtures/object-selection/object-selection.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/objects-timers/objects-timers.json b/newIDE/app/src/fixtures/objects-timers/objects-timers.json index de31ffe6fb47..892e5556ea1e 100644 --- a/newIDE/app/src/fixtures/objects-timers/objects-timers.json +++ b/newIDE/app/src/fixtures/objects-timers/objects-timers.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/open-url-in-browser/open-url-in-browser.json b/newIDE/app/src/fixtures/open-url-in-browser/open-url-in-browser.json index a616ca71b1db..9f8f28c988f5 100644 --- a/newIDE/app/src/fixtures/open-url-in-browser/open-url-in-browser.json +++ b/newIDE/app/src/fixtures/open-url-in-browser/open-url-in-browser.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/parallax-scrolling/parallax-scrolling.json b/newIDE/app/src/fixtures/parallax-scrolling/parallax-scrolling.json index 69b901635ab2..6364dc6d2efb 100644 --- a/newIDE/app/src/fixtures/parallax-scrolling/parallax-scrolling.json +++ b/newIDE/app/src/fixtures/parallax-scrolling/parallax-scrolling.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/parallax/parallax.json b/newIDE/app/src/fixtures/parallax/parallax.json index 1913c34d05a2..1c5c0fdee3b7 100644 --- a/newIDE/app/src/fixtures/parallax/parallax.json +++ b/newIDE/app/src/fixtures/parallax/parallax.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/parse-json-from-api/parse-json-from-api.json b/newIDE/app/src/fixtures/parse-json-from-api/parse-json-from-api.json index 65bd19954c02..06ac9d46085a 100644 --- a/newIDE/app/src/fixtures/parse-json-from-api/parse-json-from-api.json +++ b/newIDE/app/src/fixtures/parse-json-from-api/parse-json-from-api.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/parse-json-string/parse-json-string.json b/newIDE/app/src/fixtures/parse-json-string/parse-json-string.json index 1098fbecb834..0afff446e206 100644 --- a/newIDE/app/src/fixtures/parse-json-string/parse-json-string.json +++ b/newIDE/app/src/fixtures/parse-json-string/parse-json-string.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/particles-explosions/particles-explosions.json b/newIDE/app/src/fixtures/particles-explosions/particles-explosions.json index 380ec539fa9b..07b8bbb024cd 100644 --- a/newIDE/app/src/fixtures/particles-explosions/particles-explosions.json +++ b/newIDE/app/src/fixtures/particles-explosions/particles-explosions.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/particles-various-effects/particles-various-effects.json b/newIDE/app/src/fixtures/particles-various-effects/particles-various-effects.json index 6ffca22e8bb3..6f7720c6eee7 100644 --- a/newIDE/app/src/fixtures/particles-various-effects/particles-various-effects.json +++ b/newIDE/app/src/fixtures/particles-various-effects/particles-various-effects.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/pathfinding-basics/pathfinding-basics.json b/newIDE/app/src/fixtures/pathfinding-basics/pathfinding-basics.json index ced9c390aad9..381aa9df8225 100644 --- a/newIDE/app/src/fixtures/pathfinding-basics/pathfinding-basics.json +++ b/newIDE/app/src/fixtures/pathfinding-basics/pathfinding-basics.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/pathfinding/pathfinding.json b/newIDE/app/src/fixtures/pathfinding/pathfinding.json index 2b0bdc91b1a1..985055cecc64 100644 --- a/newIDE/app/src/fixtures/pathfinding/pathfinding.json +++ b/newIDE/app/src/fixtures/pathfinding/pathfinding.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/physics-joints-demo/physics-joints-demo.json b/newIDE/app/src/fixtures/physics-joints-demo/physics-joints-demo.json index 4c3666a73e24..4c8e84a842d0 100644 --- a/newIDE/app/src/fixtures/physics-joints-demo/physics-joints-demo.json +++ b/newIDE/app/src/fixtures/physics-joints-demo/physics-joints-demo.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -3608,11 +3608,11 @@ "parameters": [ "DistanceBox", "Physics2Behavior", - "DistanceBox.PointX(Anchor)", - "DistanceBox.PointY(Anchor)", + "DistanceBox.PointX(\"Anchor\")", + "DistanceBox.PointY(\"Anchor\")", "DistanceCircle", - "DistanceCircle.PointX(Anchor)", - "DistanceCircle.PointY(Anchor)", + "DistanceCircle.PointX(\"Anchor\")", + "DistanceCircle.PointY(\"Anchor\")", "60", "2", "0.05", @@ -3653,11 +3653,11 @@ "parameters": [ "RevoluteBox", "Physics2Behavior", - "RevoluteBox.PointX(Anchor)", - "RevoluteBox.PointY(Anchor)", + "RevoluteBox.PointX(\"Anchor\")", + "RevoluteBox.PointY(\"Anchor\")", "RevoluteCircle", - "RevoluteCircle.PointX(Anchor)", - "RevoluteCircle.PointY(Anchor)", + "RevoluteCircle.PointX(\"Anchor\")", + "RevoluteCircle.PointY(\"Anchor\")", "yes", "0", "-15", @@ -3678,8 +3678,8 @@ "parameters": [ "RevoluteBox2", "Physics2Behavior", - "RevoluteBox2.PointX(Anchor)", - "RevoluteBox2.PointY(Anchor)", + "RevoluteBox2.PointX(\"Anchor\")", + "RevoluteBox2.PointY(\"Anchor\")", "no", "", "", @@ -3723,11 +3723,11 @@ "parameters": [ "PrismaticBox", "Physics2Behavior", - "PrismaticBox.PointX(Anchor)", - "PrismaticBox.PointY(Anchor)", + "PrismaticBox.PointX(\"Anchor\")", + "PrismaticBox.PointY(\"Anchor\")", "PrismaticCircle", - "PrismaticCircle.PointX(Anchor)", - "PrismaticCircle.PointY(Anchor)", + "PrismaticCircle.PointX(\"Anchor\")", + "PrismaticCircle.PointY(\"Anchor\")", "45", "0", "yes", @@ -3773,7 +3773,7 @@ "parameters": [ "pulleyAnchorX1", "=", - "PulleyBox.PointX(Centre)" + "PulleyBox.PointX(\"Centre\")" ], "subInstructions": [] }, @@ -3785,7 +3785,7 @@ "parameters": [ "pulleyAnchorY1", "=", - "PulleyBox.PointY(Centre) - 40" + "PulleyBox.PointY(\"Centre\") - 40" ], "subInstructions": [] }, @@ -3797,7 +3797,7 @@ "parameters": [ "pulleyAnchorX2", "=", - "PulleyCircle.PointX(Centre)" + "PulleyCircle.PointX(\"Centre\")" ], "subInstructions": [] }, @@ -3809,7 +3809,7 @@ "parameters": [ "pulleyAnchorY2", "=", - "PulleyCircle.PointY(Centre) - 70" + "PulleyCircle.PointY(\"Centre\") - 70" ], "subInstructions": [] }, @@ -3821,11 +3821,11 @@ "parameters": [ "PulleyBox", "Physics2Behavior", - "PulleyBox.PointX(Anchor)", - "PulleyBox.PointY(Anchor)", + "PulleyBox.PointX(\"Anchor\")", + "PulleyBox.PointY(\"Anchor\")", "PulleyCircle", - "PulleyCircle.PointX(Anchor)", - "PulleyCircle.PointY(Anchor)", + "PulleyCircle.PointX(\"Anchor\")", + "PulleyCircle.PointY(\"Anchor\")", "Variable(pulleyAnchorX1)", "Variable(pulleyAnchorY1)", "Variable(pulleyAnchorX2)", @@ -3870,11 +3870,11 @@ "parameters": [ "GearBox2", "Physics2Behavior", - "GearBox2.PointX(Centre)", - "GearBox2.PointY(Centre)", + "GearBox2.PointX(\"Centre\")", + "GearBox2.PointY(\"Centre\")", "GearBox1", - "GearBox1.PointX(Centre)", - "GearBox1.PointY(Centre)", + "GearBox1.PointX(\"Centre\")", + "GearBox1.PointY(\"Centre\")", "-90", "", "no", @@ -3896,11 +3896,11 @@ "parameters": [ "GearBox2", "Physics2Behavior", - "GearBox2.PointX(Centre)", - "GearBox2.PointY(Centre)", + "GearBox2.PointX(\"Centre\")", + "GearBox2.PointY(\"Centre\")", "GearCircle1", - "GearCircle1.PointX(Centre)", - "GearCircle1.PointY(Centre)", + "GearCircle1.PointX(\"Centre\")", + "GearCircle1.PointY(\"Centre\")", "no", "", "", @@ -3921,8 +3921,8 @@ "parameters": [ "GearCircle2", "Physics2Behavior", - "GearCircle2.PointX(Centre)", - "GearCircle2.PointY(Centre)", + "GearCircle2.PointX(\"Centre\")", + "GearCircle2.PointY(\"Centre\")", "no", "", "", @@ -3998,11 +3998,11 @@ "parameters": [ "WheelBox", "Physics2Behavior", - "WheelBox.PointX(Anchor1)", - "WheelBox.PointY(Anchor1)", + "WheelBox.PointX(\"Anchor1\")", + "WheelBox.PointY(\"Anchor1\")", "WheelCircle1", - "WheelCircle1.PointX(Centre)", - "WheelCircle1.PointY(Centre)", + "WheelCircle1.PointX(\"Centre\")", + "WheelCircle1.PointY(\"Centre\")", "100", "5", "0.1", @@ -4022,11 +4022,11 @@ "parameters": [ "WheelBox", "Physics2Behavior", - "WheelBox.PointX(Anchor2)", - "WheelBox.PointY(Anchor2)", + "WheelBox.PointX(\"Anchor2\")", + "WheelBox.PointY(\"Anchor2\")", "WheelCircle2", - "WheelCircle2.PointX(Centre)", - "WheelCircle2.PointY(Centre)", + "WheelCircle2.PointX(\"Centre\")", + "WheelCircle2.PointY(\"Centre\")", "80", "6", "0.9", @@ -4070,11 +4070,11 @@ "parameters": [ "WeldBox", "Physics2Behavior", - "WeldBox.PointX(Anchor1)", - "WeldBox.PointY(Anchor1)", + "WeldBox.PointX(\"Anchor1\")", + "WeldBox.PointY(\"Anchor1\")", "WeldCircle1", - "WeldCircle1.PointX(Centre)", - "WeldCircle1.PointY(Centre)", + "WeldCircle1.PointX(\"Centre\")", + "WeldCircle1.PointY(\"Centre\")", "", "", "", @@ -4091,11 +4091,11 @@ "parameters": [ "WeldBox", "Physics2Behavior", - "WeldBox.PointX(Anchor2)", - "WeldBox.PointY(Anchor2)", + "WeldBox.PointX(\"Anchor2\")", + "WeldBox.PointY(\"Anchor2\")", "WeldCircle2", - "WeldCircle2.PointX(Centre)", - "WeldCircle2.PointY(Centre)", + "WeldCircle2.PointX(\"Centre\")", + "WeldCircle2.PointY(\"Centre\")", "", "", "", @@ -4159,11 +4159,11 @@ "parameters": [ "RopeBox", "Physics2Behavior", - "RopeBox.PointX(Anchor)", - "RopeBox.PointY(Anchor)", + "RopeBox.PointX(\"Anchor\")", + "RopeBox.PointY(\"Anchor\")", "RopeCircle", - "RopeCircle.PointX(Anchor)", - "RopeCircle.PointY(Anchor)", + "RopeCircle.PointX(\"Anchor\")", + "RopeCircle.PointY(\"Anchor\")", "100", "yes", "" @@ -4202,11 +4202,11 @@ "parameters": [ "FrictionBox", "Physics2Behavior", - "FrictionBox.PointX(Centre)", - "FrictionBox.PointY(Centre)", + "FrictionBox.PointX(\"Centre\")", + "FrictionBox.PointY(\"Centre\")", "FrictionCircle", - "FrictionCircle.PointX(Centre) + 16", - "FrictionCircle.PointY(Centre)", + "FrictionCircle.PointX(\"Centre\") + 16", + "FrictionCircle.PointY(\"Centre\")", "0.5", "0.01", "no", @@ -4310,8 +4310,8 @@ "parameters": [ "BreakableBox1", "Physics2Behavior", - "BreakableBox1.PointX(Anchor1)", - "BreakableBox1.PointY(Anchor1)", + "BreakableBox1.PointX(\"Anchor1\")", + "BreakableBox1.PointY(\"Anchor1\")", "yes", "", "0", @@ -4331,8 +4331,8 @@ "parameters": [ "BreakableBox2", "Physics2Behavior", - "BreakableBox2.PointX(Anchor1)", - "BreakableBox2.PointY(Anchor1)", + "BreakableBox2.PointX(\"Anchor1\")", + "BreakableBox2.PointY(\"Anchor1\")", "yes", "", "-90", @@ -4352,11 +4352,11 @@ "parameters": [ "BreakableBox1", "Physics2Behavior", - "BreakableBox1.PointX(Anchor2)", - "BreakableBox1.PointY(Anchor2)", + "BreakableBox1.PointX(\"Anchor2\")", + "BreakableBox1.PointY(\"Anchor2\")", "BreakableBox2", - "BreakableBox2.PointX(Anchor2)", - "BreakableBox2.PointY(Anchor2)", + "BreakableBox2.PointX(\"Anchor2\")", + "BreakableBox2.PointY(\"Anchor2\")", "no", "", "", @@ -4828,7 +4828,7 @@ "Draggable", "Physics2Behavior", "=", - "10*(MouseX(\"\",0) - Draggable.PointX(Centre))" + "10*(MouseX(\"\",0) - Draggable.PointX(\"Centre\"))" ], "subInstructions": [] }, @@ -4841,7 +4841,7 @@ "Draggable", "Physics2Behavior", "=", - "10*(MouseY(\"\",0) - Draggable.PointY(Centre))" + "10*(MouseY(\"\",0) - Draggable.PointY(\"Centre\"))" ], "subInstructions": [] } @@ -4941,10 +4941,10 @@ }, "parameters": [ "DistanceDraw", - "DistanceBox.PointX(Anchor)", - "DistanceBox.PointY(Anchor)", - "DistanceCircle.PointX(Anchor)", - "DistanceCircle.PointY(Anchor)", + "DistanceBox.PointX(\"Anchor\")", + "DistanceBox.PointY(\"Anchor\")", + "DistanceCircle.PointX(\"Anchor\")", + "DistanceCircle.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -4976,10 +4976,10 @@ }, "parameters": [ "RevoluteDraw", - "RevoluteBox.PointX(Anchor)", - "RevoluteBox.PointY(Anchor)", - "RevoluteBox.PointX(Anchor) + 30*cos(atan2(RevoluteCircle.PointY(Centre) - RevoluteBox.PointY(Anchor), RevoluteCircle.PointX(Centre) - RevoluteBox.PointX(Anchor)))", - "RevoluteBox.PointY(Anchor) + 30*sin(atan2(RevoluteCircle.PointY(Centre) - RevoluteBox.PointY(Anchor), RevoluteCircle.PointX(Centre) - RevoluteBox.PointX(Anchor)))", + "RevoluteBox.PointX(\"Anchor\")", + "RevoluteBox.PointY(\"Anchor\")", + "RevoluteBox.PointX(\"Anchor\") + 30*cos(atan2(RevoluteCircle.PointY(\"Centre\") - RevoluteBox.PointY(\"Anchor\"), RevoluteCircle.PointX(\"Centre\") - RevoluteBox.PointX(\"Anchor\")))", + "RevoluteBox.PointY(\"Anchor\") + 30*sin(atan2(RevoluteCircle.PointY(\"Centre\") - RevoluteBox.PointY(\"Anchor\"), RevoluteCircle.PointX(\"Centre\") - RevoluteBox.PointX(\"Anchor\")))", "2" ], "subInstructions": [] @@ -5002,10 +5002,10 @@ }, "parameters": [ "RevoluteDraw", - "RevoluteBox.PointX(Anchor)", - "RevoluteBox.PointY(Anchor)", - "RevoluteBox.PointX(Anchor) + 20*cos(ToRad(RevoluteBox.Angle() - 15))", - "RevoluteBox.PointY(Anchor) + 20*sin(ToRad(RevoluteBox.Angle() - 15))", + "RevoluteBox.PointX(\"Anchor\")", + "RevoluteBox.PointY(\"Anchor\")", + "RevoluteBox.PointX(\"Anchor\") + 20*cos(ToRad(RevoluteBox.Angle() - 15))", + "RevoluteBox.PointY(\"Anchor\") + 20*sin(ToRad(RevoluteBox.Angle() - 15))", "2" ], "subInstructions": [] @@ -5028,10 +5028,10 @@ }, "parameters": [ "RevoluteDraw", - "RevoluteBox.PointX(Anchor)", - "RevoluteBox.PointY(Anchor)", - "RevoluteBox.PointX(Anchor) + 20*cos(ToRad(RevoluteBox.Angle() + 45))", - "RevoluteBox.PointY(Anchor) + 20*sin(ToRad(RevoluteBox.Angle() + 45))", + "RevoluteBox.PointX(\"Anchor\")", + "RevoluteBox.PointY(\"Anchor\")", + "RevoluteBox.PointX(\"Anchor\") + 20*cos(ToRad(RevoluteBox.Angle() + 45))", + "RevoluteBox.PointY(\"Anchor\") + 20*sin(ToRad(RevoluteBox.Angle() + 45))", "2" ], "subInstructions": [] @@ -5054,8 +5054,8 @@ }, "parameters": [ "RevoluteDraw", - "RevoluteBox.PointX(Anchor)", - "RevoluteBox.PointY(Anchor)", + "RevoluteBox.PointX(\"Anchor\")", + "RevoluteBox.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5078,8 +5078,8 @@ }, "parameters": [ "RevoluteDraw", - "RevoluteBox2.PointX(Anchor)", - "RevoluteBox2.PointY(Anchor)", + "RevoluteBox2.PointX(\"Anchor\")", + "RevoluteBox2.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5111,10 +5111,10 @@ }, "parameters": [ "PrismaticDraw", - "PrismaticBox.PointX(Anchor) - 40*cos(ToRad(PrismaticBox.Angle() + 45))", - "PrismaticBox.PointY(Anchor) - 40*sin(ToRad(PrismaticBox.Angle() + 45))", - "PrismaticBox.PointX(Anchor) + 80*cos(ToRad(PrismaticBox.Angle() + 45))", - "PrismaticBox.PointY(Anchor) + 80*sin(ToRad(PrismaticBox.Angle() + 45))", + "PrismaticBox.PointX(\"Anchor\") - 40*cos(ToRad(PrismaticBox.Angle() + 45))", + "PrismaticBox.PointY(\"Anchor\") - 40*sin(ToRad(PrismaticBox.Angle() + 45))", + "PrismaticBox.PointX(\"Anchor\") + 80*cos(ToRad(PrismaticBox.Angle() + 45))", + "PrismaticBox.PointY(\"Anchor\") + 80*sin(ToRad(PrismaticBox.Angle() + 45))", "2" ], "subInstructions": [] @@ -5137,10 +5137,10 @@ }, "parameters": [ "PrismaticDraw", - "PrismaticBox.PointX(Anchor)", - "PrismaticBox.PointY(Anchor)", - "PrismaticCircle.PointX(Anchor)", - "PrismaticCircle.PointY(Anchor)", + "PrismaticBox.PointX(\"Anchor\")", + "PrismaticBox.PointY(\"Anchor\")", + "PrismaticCircle.PointX(\"Anchor\")", + "PrismaticCircle.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5163,8 +5163,8 @@ }, "parameters": [ "PrismaticDraw", - "PrismaticBox.PointX(Anchor)", - "PrismaticBox.PointY(Anchor)", + "PrismaticBox.PointX(\"Anchor\")", + "PrismaticBox.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5176,8 +5176,8 @@ }, "parameters": [ "PrismaticDraw", - "PrismaticCircle.PointX(Anchor)", - "PrismaticCircle.PointY(Anchor)", + "PrismaticCircle.PointX(\"Anchor\")", + "PrismaticCircle.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5198,8 +5198,8 @@ }, "parameters": [ "PulleyDraw", - "PulleyBox.PointX(Anchor)", - "PulleyBox.PointY(Anchor)", + "PulleyBox.PointX(\"Anchor\")", + "PulleyBox.PointY(\"Anchor\")", "Variable(pulleyAnchorX1)", "Variable(pulleyAnchorY1)", "2" @@ -5230,8 +5230,8 @@ "PulleyDraw", "Variable(pulleyAnchorX2)", "Variable(pulleyAnchorY2)", - "PulleyCircle.PointX(Anchor)", - "PulleyCircle.PointY(Anchor)", + "PulleyCircle.PointX(\"Anchor\")", + "PulleyCircle.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -5252,10 +5252,10 @@ }, "parameters": [ "GearDraw", - "GearBox1.PointX(Centre)", - "GearBox1.PointY(Centre)", - "GearBox2.PointX(Centre)", - "GearBox2.PointY(Centre)", + "GearBox1.PointX(\"Centre\")", + "GearBox1.PointY(\"Centre\")", + "GearBox2.PointX(\"Centre\")", + "GearBox2.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5267,10 +5267,10 @@ }, "parameters": [ "GearDraw", - "GearBox2.PointX(Centre)", - "GearBox2.PointY(Centre)", - "GearCircle1.PointX(Centre)", - "GearCircle1.PointY(Centre)", + "GearBox2.PointX(\"Centre\")", + "GearBox2.PointY(\"Centre\")", + "GearCircle1.PointX(\"Centre\")", + "GearCircle1.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5282,10 +5282,10 @@ }, "parameters": [ "GearDraw", - "GearCircle1.PointX(Centre)", - "GearCircle1.PointY(Centre)", - "GearCircle2.PointX(Centre)", - "GearCircle2.PointY(Centre)", + "GearCircle1.PointX(\"Centre\")", + "GearCircle1.PointY(\"Centre\")", + "GearCircle2.PointX(\"Centre\")", + "GearCircle2.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5306,10 +5306,10 @@ }, "parameters": [ "WheelDraw", - "WheelBox.PointX(Anchor1)", - "WheelBox.PointY(Anchor1)", - "WheelCircle1.PointX(Centre)", - "WheelCircle1.PointY(Centre)", + "WheelBox.PointX(\"Anchor1\")", + "WheelBox.PointY(\"Anchor1\")", + "WheelCircle1.PointX(\"Centre\")", + "WheelCircle1.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5321,10 +5321,10 @@ }, "parameters": [ "WheelDraw", - "WheelBox.PointX(Anchor2)", - "WheelBox.PointY(Anchor2)", - "WheelCircle2.PointX(Centre)", - "WheelCircle2.PointY(Centre)", + "WheelBox.PointX(\"Anchor2\")", + "WheelBox.PointY(\"Anchor2\")", + "WheelCircle2.PointX(\"Centre\")", + "WheelCircle2.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5345,8 +5345,8 @@ }, "parameters": [ "WeldDraw", - "WeldBox.PointX(Anchor1)", - "WeldBox.PointY(Anchor1)", + "WeldBox.PointX(\"Anchor1\")", + "WeldBox.PointY(\"Anchor1\")", "2" ], "subInstructions": [] @@ -5358,8 +5358,8 @@ }, "parameters": [ "WeldDraw", - "WeldBox.PointX(Anchor2)", - "WeldBox.PointY(Anchor2)", + "WeldBox.PointX(\"Anchor2\")", + "WeldBox.PointY(\"Anchor2\")", "2" ], "subInstructions": [] @@ -5380,10 +5380,10 @@ }, "parameters": [ "RopeDraw", - "RopeBox.PointX(Centre)", - "RopeBox.PointY(Centre)", - "RopeCircle.PointX(Centre)", - "RopeCircle.PointY(Centre)", + "RopeBox.PointX(\"Centre\")", + "RopeBox.PointY(\"Centre\")", + "RopeCircle.PointX(\"Centre\")", + "RopeCircle.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5404,10 +5404,10 @@ }, "parameters": [ "MotorDraw", - "MotorBox2.PointX(Centre)", - "MotorBox2.PointY(Centre)", - "MotorBox2.PointX(Centre) + 50", - "MotorBox2.PointY(Centre)", + "MotorBox2.PointX(\"Centre\")", + "MotorBox2.PointY(\"Centre\")", + "MotorBox2.PointX(\"Centre\") + 50", + "MotorBox2.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -5419,10 +5419,10 @@ }, "parameters": [ "MotorDraw", - "MotorBox2.PointX(Centre) + 50", - "MotorBox2.PointY(Centre)", - "MotorBox1.PointX(Centre)", - "MotorBox1.PointY(Centre)", + "MotorBox2.PointX(\"Centre\") + 50", + "MotorBox2.PointY(\"Centre\")", + "MotorBox1.PointX(\"Centre\")", + "MotorBox1.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -5434,10 +5434,10 @@ }, "parameters": [ "MotorDraw", - "MotorBox2.PointX(Centre)", - "MotorBox2.PointY(Centre)", - "MotorBox2.PointX(Centre) + 70", - "MotorBox2.PointY(Centre) + 30", + "MotorBox2.PointX(\"Centre\")", + "MotorBox2.PointY(\"Centre\")", + "MotorBox2.PointX(\"Centre\") + 70", + "MotorBox2.PointY(\"Centre\") + 30", "1" ], "subInstructions": [] @@ -5449,10 +5449,10 @@ }, "parameters": [ "MotorDraw", - "MotorBox2.PointX(Centre) + 70", - "MotorBox2.PointY(Centre) + 30", - "MotorCircle.PointX(Centre)", - "MotorCircle.PointY(Centre)", + "MotorBox2.PointX(\"Centre\") + 70", + "MotorBox2.PointY(\"Centre\") + 30", + "MotorCircle.PointX(\"Centre\")", + "MotorCircle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -5464,10 +5464,10 @@ }, "parameters": [ "MotorDraw", - "MotorCircle.PointX(Centre)", - "MotorCircle.PointY(Centre)", - "MotorCircle.PointX(Centre) + 30*cos(ToRad(MotorCircle.Angle()))", - "MotorCircle.PointY(Centre) + 30*sin(ToRad(MotorCircle.Angle()))", + "MotorCircle.PointX(\"Centre\")", + "MotorCircle.PointY(\"Centre\")", + "MotorCircle.PointX(\"Centre\") + 30*cos(ToRad(MotorCircle.Angle()))", + "MotorCircle.PointY(\"Centre\") + 30*sin(ToRad(MotorCircle.Angle()))", "1" ], "subInstructions": [] @@ -5479,10 +5479,10 @@ }, "parameters": [ "MotorDraw", - "MotorCircle.PointX(Centre)", - "MotorCircle.PointY(Centre)", - "MotorCircle.PointX(Centre) + 30*cos(ToRad(MotorBox2.Angle() + 45))", - "MotorCircle.PointY(Centre) + 30*sin(ToRad(MotorBox2.Angle() + 45))", + "MotorCircle.PointX(\"Centre\")", + "MotorCircle.PointY(\"Centre\")", + "MotorCircle.PointX(\"Centre\") + 30*cos(ToRad(MotorBox2.Angle() + 45))", + "MotorCircle.PointY(\"Centre\") + 30*sin(ToRad(MotorBox2.Angle() + 45))", "1" ], "subInstructions": [] @@ -5503,10 +5503,10 @@ }, "parameters": [ "FrictionDraw", - "FrictionBox.PointX(Centre)", - "FrictionBox.PointY(Centre)", - "FrictionCircle.PointX(Centre) + 16*cos(ToRad(FrictionCircle.Angle()))", - "FrictionCircle.PointY(Centre) + 16*sin(ToRad(FrictionCircle.Angle()))", + "FrictionBox.PointX(\"Centre\")", + "FrictionBox.PointY(\"Centre\")", + "FrictionCircle.PointX(\"Centre\") + 16*cos(ToRad(FrictionCircle.Angle()))", + "FrictionCircle.PointY(\"Centre\") + 16*sin(ToRad(FrictionCircle.Angle()))", "2" ], "subInstructions": [] @@ -5518,10 +5518,10 @@ }, "parameters": [ "FrictionDraw", - "FrictionBox.PointX(Centre)", - "FrictionBox.PointY(Centre)", - "FrictionCircle.PointX(Centre) + 16*cos(ToRad(FrictionCircle.Angle()))", - "FrictionCircle.PointY(Centre) + 16*sin(ToRad(FrictionCircle.Angle()))", + "FrictionBox.PointX(\"Centre\")", + "FrictionBox.PointY(\"Centre\")", + "FrictionCircle.PointX(\"Centre\") + 16*cos(ToRad(FrictionCircle.Angle()))", + "FrictionCircle.PointY(\"Centre\") + 16*sin(ToRad(FrictionCircle.Angle()))", "2" ], "subInstructions": [] @@ -5533,10 +5533,10 @@ }, "parameters": [ "FrictionDraw", - "FrictionCircle.PointX(Centre) + 16*cos(ToRad(FrictionCircle.Angle()))", - "FrictionCircle.PointY(Centre) + 16*sin(ToRad(FrictionCircle.Angle()))", - "FrictionCircle.PointX(Centre)", - "FrictionCircle.PointY(Centre)", + "FrictionCircle.PointX(\"Centre\") + 16*cos(ToRad(FrictionCircle.Angle()))", + "FrictionCircle.PointY(\"Centre\") + 16*sin(ToRad(FrictionCircle.Angle()))", + "FrictionCircle.PointX(\"Centre\")", + "FrictionCircle.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -5568,10 +5568,10 @@ }, "parameters": [ "BreakableDraw", - "BreakableBox1.PointX(Anchor1) - 15", - "BreakableBox1.PointY(Anchor1)", - "BreakableBox1.PointX(Anchor1) - 15", - "BreakableBox1.PointY(Anchor1) - BreakableBox1.Physics2Behavior::JointReactionForce(Variable(breakableJoint))", + "BreakableBox1.PointX(\"Anchor1\") - 15", + "BreakableBox1.PointY(\"Anchor1\")", + "BreakableBox1.PointX(\"Anchor1\") - 15", + "BreakableBox1.PointY(\"Anchor1\") - BreakableBox1.Physics2Behavior::JointReactionForce(Variable(breakableJoint))", "3" ], "subInstructions": [] @@ -5594,8 +5594,8 @@ }, "parameters": [ "BreakableDraw", - "BreakableBox1.PointX(Anchor1) - 15", - "BreakableBox1.PointY(Anchor1) - 50", + "BreakableBox1.PointX(\"Anchor1\") - 15", + "BreakableBox1.PointY(\"Anchor1\") - 50", "2" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/physics-joints-settings-demo/physics-joints-settings-demo.json b/newIDE/app/src/fixtures/physics-joints-settings-demo/physics-joints-settings-demo.json index e6c7e8c77d4d..cfcdedb2bb23 100644 --- a/newIDE/app/src/fixtures/physics-joints-settings-demo/physics-joints-settings-demo.json +++ b/newIDE/app/src/fixtures/physics-joints-settings-demo/physics-joints-settings-demo.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -979,11 +979,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Centre)", - "Box.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", "Circle", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "", "", "", @@ -1586,10 +1586,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -2464,11 +2464,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "Circle", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "no", "", "", @@ -3778,10 +3778,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1" ], "subInstructions": [] @@ -3826,10 +3826,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", - "Circle.PointX(Anchor) + 40*cos(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMinAngle(Variable(joint))))", - "Circle.PointY(Anchor) + 40*sin(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMinAngle(Variable(joint))))", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", + "Circle.PointX(\"Anchor\") + 40*cos(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMinAngle(Variable(joint))))", + "Circle.PointY(\"Anchor\") + 40*sin(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMinAngle(Variable(joint))))", "1" ], "subInstructions": [] @@ -3852,10 +3852,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", - "Circle.PointX(Anchor) + 40*cos(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMaxAngle(Variable(joint))))", - "Circle.PointY(Anchor) + 40*sin(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMaxAngle(Variable(joint))))", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", + "Circle.PointX(\"Anchor\") + 40*cos(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMaxAngle(Variable(joint))))", + "Circle.PointY(\"Anchor\") + 40*sin(ToRad(Box.Angle() + Box.Physics2Behavior::RevoluteJointMaxAngle(Variable(joint))))", "1" ], "subInstructions": [] @@ -4770,11 +4770,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Centre)", - "Box.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", "Circle", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "45", "", "no", @@ -6155,10 +6155,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -6203,10 +6203,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre) + Box.Physics2Behavior::PrismaticJointMinTranslation(Variable(joint))*cos(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", - "Box.PointY(Centre) + Box.Physics2Behavior::PrismaticJointMinTranslation(Variable(joint))*sin(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", - "Box.PointX(Centre) + Box.Physics2Behavior::PrismaticJointMaxTranslation(Variable(joint))*cos(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", - "Box.PointY(Centre) + Box.Physics2Behavior::PrismaticJointMaxTranslation(Variable(joint))*sin(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", + "Box.PointX(\"Centre\") + Box.Physics2Behavior::PrismaticJointMinTranslation(Variable(joint))*cos(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", + "Box.PointY(\"Centre\") + Box.Physics2Behavior::PrismaticJointMinTranslation(Variable(joint))*sin(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", + "Box.PointX(\"Centre\") + Box.Physics2Behavior::PrismaticJointMaxTranslation(Variable(joint))*cos(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", + "Box.PointY(\"Centre\") + Box.Physics2Behavior::PrismaticJointMaxTranslation(Variable(joint))*sin(ToRad(Box.Physics2Behavior::PrismaticJointAxisAngle(Variable(joint))))", "1" ], "subInstructions": [] @@ -6641,15 +6641,15 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "Circle", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", - "Box.PointX(Centre)", - "Box.PointY(Centre) - 200", - "Circle.PointX(Centre)", - "Circle.PointY(Centre) - 300", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\") - 200", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\") - 300", "", "", "", @@ -7050,8 +7050,8 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "Box.Physics2Behavior::PulleyJointFirstGroundAnchorX(Variable(joint))", "Box.Physics2Behavior::PulleyJointFirstGroundAnchorY(Variable(joint))", "1" @@ -7082,8 +7082,8 @@ "Drawer", "Box.Physics2Behavior::PulleyJointSecondGroundAnchorX(Variable(joint))", "Box.Physics2Behavior::PulleyJointSecondGroundAnchorY(Variable(joint))", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1" ], "subInstructions": [] @@ -7496,11 +7496,11 @@ "parameters": [ "Wall", "Physics2Behavior", - "Box.PointX(Centre)", - "Wall.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Wall.PointY(\"Centre\")", "Box", - "Box.PointX(Centre)", - "Box.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", "90", "", "no", @@ -7522,8 +7522,8 @@ "parameters": [ "Circle", "Physics2Behavior", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "no", "", "", @@ -7924,10 +7924,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Box.PointX(Centre)", - "Wall.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Box.PointX(\"Centre\")", + "Wall.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -7939,8 +7939,8 @@ }, "parameters": [ "Drawer", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "2" ], "subInstructions": [] @@ -7952,10 +7952,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -9859,11 +9859,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Centre) + 1/3*Box.Width()", - "Box.PointY(Centre) + 0.75*Box.Height()", + "Box.PointX(\"Centre\") + 1/3*Box.Width()", + "Box.PointY(\"Centre\") + 0.75*Box.Height()", "Circle", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "70", "", "", @@ -9906,11 +9906,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Centre) - 1/3*Box.Width()", - "Box.PointY(Centre) + 1*Box.Height()", + "Box.PointX(\"Centre\") - 1/3*Box.Width()", + "Box.PointY(\"Centre\") + 1*Box.Height()", "Circle", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "105", "", "", @@ -11037,10 +11037,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre) + 1/3*Box.Width()*cos(ToRad(Box.Angle())) - 1*Box.Height()*sin(ToRad(Box.Angle()))", - "Box.PointY(Centre) + 1*Box.Height()*cos(ToRad(Box.Angle())) + 1/3*Box.Width()*sin(ToRad(Box.Angle()))", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Box.PointX(\"Centre\") + 1/3*Box.Width()*cos(ToRad(Box.Angle())) - 1*Box.Height()*sin(ToRad(Box.Angle()))", + "Box.PointY(\"Centre\") + 1*Box.Height()*cos(ToRad(Box.Angle())) + 1/3*Box.Width()*sin(ToRad(Box.Angle()))", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -11075,10 +11075,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre) - 1/3*Box.Width()*cos(ToRad(Box.Angle())) - 1*Box.Height()*sin(ToRad(Box.Angle()))", - "Box.PointY(Centre) + 1*Box.Height()*cos(ToRad(Box.Angle())) - 1/3*Box.Width()*sin(ToRad(Box.Angle()))", - "Circle.PointX(Centre)", - "Circle.PointY(Centre)", + "Box.PointX(\"Centre\") - 1/3*Box.Width()*cos(ToRad(Box.Angle())) - 1*Box.Height()*sin(ToRad(Box.Angle()))", + "Box.PointY(\"Centre\") + 1*Box.Height()*cos(ToRad(Box.Angle())) - 1/3*Box.Width()*sin(ToRad(Box.Angle()))", + "Circle.PointX(\"Centre\")", + "Circle.PointY(\"Centre\")", "1" ], "subInstructions": [] @@ -11513,11 +11513,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "Circle", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "", "", "", @@ -11960,10 +11960,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1" ], "subInstructions": [] @@ -11975,8 +11975,8 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "2" ], "subInstructions": [] @@ -12291,11 +12291,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", "Circle", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "", "no", "joint" @@ -12522,10 +12522,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Anchor)", - "Box.PointY(Anchor)", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Box.PointX(\"Anchor\")", + "Box.PointY(\"Anchor\")", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1" ], "subInstructions": [] @@ -12931,11 +12931,11 @@ "parameters": [ "Box", "Physics2Behavior", - "Box.PointX(Centre)", - "Box.PointY(Centre)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", "Circle", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1", "0.05", "no", @@ -13320,10 +13320,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Circle.PointX(Anchor)", - "Circle.PointY(Anchor)", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Circle.PointX(\"Anchor\")", + "Circle.PointY(\"Anchor\")", "1" ], "subInstructions": [] @@ -14990,10 +14990,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre)", - "Box.PointY(Centre)", - "Box.PointX(Centre) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle()))", - "Box.PointY(Centre) + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle()))", + "Box.PointX(\"Centre\")", + "Box.PointY(\"Centre\")", + "Box.PointX(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle()))", + "Box.PointY(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle()))", "1" ], "subInstructions": [] @@ -15005,10 +15005,10 @@ }, "parameters": [ "Drawer", - "Box.PointX(Centre) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle()))", - "Box.PointY(Centre) + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle()))", - "Box.PointX(Centre) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle())) + 30*cos(ToRad(Box.Angle() + Box.Physics2Behavior::MotorJointAngularOffset(Variable(joint))))", - "Box.PointY(Centre) + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle())) + 30*sin(ToRad(Box.Angle() + Box.Physics2Behavior::MotorJointAngularOffset(Variable(joint))))", + "Box.PointX(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle()))", + "Box.PointY(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle()))", + "Box.PointX(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*cos(ToRad(Box.Angle())) - Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*sin(ToRad(Box.Angle())) + 30*cos(ToRad(Box.Angle() + Box.Physics2Behavior::MotorJointAngularOffset(Variable(joint))))", + "Box.PointY(\"Centre\") + Box.Physics2Behavior::MotorJointOffsetY(Variable(joint))*cos(ToRad(Box.Angle())) + Box.Physics2Behavior::MotorJointOffsetX(Variable(joint))*sin(ToRad(Box.Angle())) + 30*sin(ToRad(Box.Angle() + Box.Physics2Behavior::MotorJointAngularOffset(Variable(joint))))", "1" ], "subInstructions": [] @@ -15607,9 +15607,9 @@ "parameters": [ "SceneButtonText", "=", - "SceneButton.PointX(Centre) - SceneButtonText.Width()/2", + "SceneButton.PointX(\"Centre\") - SceneButtonText.Width()/2", "=", - "SceneButton.PointY(Centre) - SceneButtonText.Height()/2" + "SceneButton.PointY(\"Centre\") - SceneButtonText.Height()/2" ], "subInstructions": [] } @@ -15813,9 +15813,9 @@ "parameters": [ "ButtonText", "=", - "Button.PointX(Centre) - ButtonText.Width()/2", + "Button.PointX(\"Centre\") - ButtonText.Width()/2", "=", - "Button.PointY(Centre) - ButtonText.Height()/2" + "Button.PointY(\"Centre\") - ButtonText.Height()/2" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/physics/physics.json b/newIDE/app/src/fixtures/physics/physics.json index 3c0e6317cc1c..0d6dfa655807 100644 --- a/newIDE/app/src/fixtures/physics/physics.json +++ b/newIDE/app/src/fixtures/physics/physics.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -3007,8 +3007,8 @@ "parameters": [ "Lever", "Physics2", - "Lever.PointX(Centre)", - "Lever.PointY(Centre)", + "Lever.PointX(\"Centre\")", + "Lever.PointY(\"Centre\")", "", "", "", @@ -3124,8 +3124,8 @@ "Physics2", "15", "-5", - "BlackSphere.PointX(Centre)", - "BlackSphere.PointY(Centre)" + "BlackSphere.PointX(\"Centre\")", + "BlackSphere.PointY(\"Centre\")" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/pin-object-to-another-multiple-parents/pin-object-to-another-multiple-parents.json b/newIDE/app/src/fixtures/pin-object-to-another-multiple-parents/pin-object-to-another-multiple-parents.json index 1b6f352fd48c..0834a7fffb58 100644 --- a/newIDE/app/src/fixtures/pin-object-to-another-multiple-parents/pin-object-to-another-multiple-parents.json +++ b/newIDE/app/src/fixtures/pin-object-to-another-multiple-parents/pin-object-to-another-multiple-parents.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -611,7 +611,7 @@ "child", "AngleToParent", "=", - "ToDeg(atan2(child.PointY(Centre) - parent.PointY(Centre), child.PointX(Centre) - parent.PointX(Centre)))" + "ToDeg(atan2(child.PointY(\"Centre\") - parent.PointY(\"Centre\"), child.PointX(\"Centre\") - parent.PointX(\"Centre\")))" ], "subInstructions": [] } @@ -901,7 +901,7 @@ "child", "distanceX", "=", - "parent.PointX(Centre) - child.PointX(Centre)" + "parent.PointX(\"Centre\") - child.PointX(\"Centre\")" ], "subInstructions": [] }, @@ -914,7 +914,7 @@ "child", "distanceY", "=", - "parent.PointY(Centre) - child.PointY(Centre)" + "parent.PointY(\"Centre\") - child.PointY(\"Centre\")" ], "subInstructions": [] }, @@ -943,9 +943,9 @@ "value": "Egal" }, "parameters": [ - "child.PointX(Centre)", + "child.PointX(\"Centre\")", ">", - "parent.PointX(Centre)" + "parent.PointX(\"Centre\")" ], "subInstructions": [] } @@ -978,9 +978,9 @@ "value": "Egal" }, "parameters": [ - "child.PointX(Centre)", + "child.PointX(\"Centre\")", "<", - "parent.PointX(Centre)" + "parent.PointX(\"Centre\")" ], "subInstructions": [] } @@ -1013,9 +1013,9 @@ "value": "Egal" }, "parameters": [ - "child.PointY(Centre)", + "child.PointY(\"Centre\")", ">", - "parent.PointY(Centre)" + "parent.PointY(\"Centre\")" ], "subInstructions": [] } @@ -1048,9 +1048,9 @@ "value": "Egal" }, "parameters": [ - "child.PointY(Centre)", + "child.PointY(\"Centre\")", "<", - "parent.PointY(Centre)" + "parent.PointY(\"Centre\")" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/pin-object-to-another/pin-object-to-another.json b/newIDE/app/src/fixtures/pin-object-to-another/pin-object-to-another.json index 0c45b8aba384..40844815f0f5 100644 --- a/newIDE/app/src/fixtures/pin-object-to-another/pin-object-to-another.json +++ b/newIDE/app/src/fixtures/pin-object-to-another/pin-object-to-another.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/pixel-perfect-platform-game/pixel-perfect-platform-game.json b/newIDE/app/src/fixtures/pixel-perfect-platform-game/pixel-perfect-platform-game.json index 545423e1d932..3b2eeffd2d90 100644 --- a/newIDE/app/src/fixtures/pixel-perfect-platform-game/pixel-perfect-platform-game.json +++ b/newIDE/app/src/fixtures/pixel-perfect-platform-game/pixel-perfect-platform-game.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/plane-and-clouds/plane-and-clouds.json b/newIDE/app/src/fixtures/plane-and-clouds/plane-and-clouds.json index 63e69f2d438c..3fdb9f93e026 100644 --- a/newIDE/app/src/fixtures/plane-and-clouds/plane-and-clouds.json +++ b/newIDE/app/src/fixtures/plane-and-clouds/plane-and-clouds.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -674,9 +674,9 @@ "parameters": [ "Smoke", "=", - "Plane.PointX(Smoke)", + "Plane.PointX(\"Smoke\")", "=", - "Plane.PointY(Smoke)" + "Plane.PointY(\"Smoke\")" ], "subInstructions": [] }, @@ -738,7 +738,7 @@ "parameters": [ "", "=", - "Plane.PointX(Centre)*1.5", + "Plane.PointX(\"Centre\")*1.5", "\"UpperLayer\"", "" ], @@ -752,7 +752,7 @@ "parameters": [ "", "=", - "Plane.PointY(Centre)*1.5", + "Plane.PointY(\"Centre\")*1.5", "\"UpperLayer\"", "" ], @@ -804,9 +804,9 @@ "parameters": [ "Bullet", "=", - "Plane.PointX(GunA)", + "Plane.PointX(\"GunA\")", "=", - "Plane.PointY(GunA)" + "Plane.PointY(\"GunA\")" ], "subInstructions": [] }, @@ -853,9 +853,9 @@ "parameters": [ "Bullet", "=", - "Plane.PointX(GunB)", + "Plane.PointX(\"GunB\")", "=", - "Plane.PointY(GunB)" + "Plane.PointY(\"GunB\")" ], "subInstructions": [] }, @@ -1012,8 +1012,8 @@ "parameters": [ "", "Cloud", - "Plane.PointX(Centre) + 700*cos(ToRad(Variable(random_angle)))", - "Plane.PointY(Centre) + 700*sin(ToRad(Variable(random_angle)))", + "Plane.PointX(\"Centre\") + 700*cos(ToRad(Variable(random_angle)))", + "Plane.PointY(\"Centre\") + 700*sin(ToRad(Variable(random_angle)))", "" ], "subInstructions": [] @@ -1121,9 +1121,9 @@ "parameters": [ "Cloud", "=", - "Cloud.X() + (1.5 -1)*Plane.PointX(Centre)", + "Cloud.X() + (1.5 -1)*Plane.PointX(\"Centre\")", "=", - "Cloud.Y() + (1.5 -1)*Plane.PointY(Centre)" + "Cloud.Y() + (1.5 -1)*Plane.PointY(\"Centre\")" ], "subInstructions": [] } @@ -1194,8 +1194,8 @@ "parameters": [ "", "Bullet", - "Plane.PointX(GunA)", - "Plane.PointY(GunA)", + "Plane.PointX(\"GunA\")", + "Plane.PointY(\"GunA\")", "" ], "subInstructions": [] @@ -1242,8 +1242,8 @@ "parameters": [ "", "Bullet", - "Plane.PointX(GunB)", - "Plane.PointY(GunB)", + "Plane.PointX(\"GunB\")", + "Plane.PointY(\"GunB\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/platformer-double-jump/platformer-double-jump.json b/newIDE/app/src/fixtures/platformer-double-jump/platformer-double-jump.json index daf255e06027..cf3f4c899ade 100644 --- a/newIDE/app/src/fixtures/platformer-double-jump/platformer-double-jump.json +++ b/newIDE/app/src/fixtures/platformer-double-jump/platformer-double-jump.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/platformer/platformer.json b/newIDE/app/src/fixtures/platformer/platformer.json index 1bf065c67489..2bad607a82b1 100644 --- a/newIDE/app/src/fixtures/platformer/platformer.json +++ b/newIDE/app/src/fixtures/platformer/platformer.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/play-music-on-mobile/play-music-on-mobile.json b/newIDE/app/src/fixtures/play-music-on-mobile/play-music-on-mobile.json index 4d7afc0d4893..22cdf979cb81 100644 --- a/newIDE/app/src/fixtures/play-music-on-mobile/play-music-on-mobile.json +++ b/newIDE/app/src/fixtures/play-music-on-mobile/play-music-on-mobile.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/play-stop-sprite-animation/play-stop-sprite-animation.json b/newIDE/app/src/fixtures/play-stop-sprite-animation/play-stop-sprite-animation.json index c036d54b7302..60398b50b127 100644 --- a/newIDE/app/src/fixtures/play-stop-sprite-animation/play-stop-sprite-animation.json +++ b/newIDE/app/src/fixtures/play-stop-sprite-animation/play-stop-sprite-animation.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/racing-game/racing-game.json b/newIDE/app/src/fixtures/racing-game/racing-game.json index 233d5ba939f2..93cc54d94ed8 100644 --- a/newIDE/app/src/fixtures/racing-game/racing-game.json +++ b/newIDE/app/src/fixtures/racing-game/racing-game.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -7996,8 +7996,8 @@ "Physics2", "AICar.Direction()", "AICar.Variable(Acceleration)/10", - "AICar.PointX(Centre)", - "AICar.PointY(Centre)" + "AICar.PointX(\"Centre\")", + "AICar.PointY(\"Centre\")" ], "subInstructions": [] } @@ -8300,8 +8300,8 @@ "Physics2", "PlayerCar.Angle()", "PlayerCar.Variable(Acceleration)/10", - "PlayerCar.PointX(Centre)", - "PlayerCar.PointY(Centre)" + "PlayerCar.PointX(\"Centre\")", + "PlayerCar.PointY(\"Centre\")" ], "subInstructions": [] } @@ -8324,8 +8324,8 @@ "Physics2", "PlayerCar.Angle()+180", "PlayerCar.Variable(Breaking)/10", - "PlayerCar.PointX(Centre)", - "PlayerCar.PointY(Centre)" + "PlayerCar.PointX(\"Centre\")", + "PlayerCar.PointY(\"Centre\")" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/ragdoll/ragdoll.json b/newIDE/app/src/fixtures/ragdoll/ragdoll.json index 0f5b55130934..4c0f48436221 100644 --- a/newIDE/app/src/fixtures/ragdoll/ragdoll.json +++ b/newIDE/app/src/fixtures/ragdoll/ragdoll.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -2154,11 +2154,11 @@ "parameters": [ "Head", "Physics2Behavior", - "Head.PointX(Attach)", - "Head.PointY(Attach)", + "Head.PointX(\"Attach\")", + "Head.PointY(\"Attach\")", "Torso", - "Torso.PointX(HeadAttach)", - "Torso.PointY(HeadAttach)", + "Torso.PointX(\"HeadAttach\")", + "Torso.PointY(\"HeadAttach\")", "yes", "", "15", @@ -2179,11 +2179,11 @@ "parameters": [ "RUpperArm", "Physics2Behavior", - "RUpperArm.PointX(TopAttach)", - "RUpperArm.PointY(TopAttach)", + "RUpperArm.PointX(\"TopAttach\")", + "RUpperArm.PointY(\"TopAttach\")", "Torso", - "Torso.PointX(ArmAttach)", - "Torso.PointY(ArmAttach)", + "Torso.PointX(\"ArmAttach\")", + "Torso.PointY(\"ArmAttach\")", "no", "", "", @@ -2204,11 +2204,11 @@ "parameters": [ "LUpperArm", "Physics2Behavior", - "LUpperArm.PointX(TopAttach)", - "LUpperArm.PointY(TopAttach)", + "LUpperArm.PointX(\"TopAttach\")", + "LUpperArm.PointY(\"TopAttach\")", "Torso", - "Torso.PointX(ArmAttach)", - "Torso.PointY(ArmAttach)", + "Torso.PointX(\"ArmAttach\")", + "Torso.PointY(\"ArmAttach\")", "no", "", "", @@ -2229,11 +2229,11 @@ "parameters": [ "LUpperArm", "Physics2Behavior", - "LUpperArm.PointX(BotAttach)", - "LUpperArm.PointY(BotAttach)", + "LUpperArm.PointX(\"BotAttach\")", + "LUpperArm.PointY(\"BotAttach\")", "LArm", - "LArm.PointX(Attach)", - "LArm.PointY(Attach)", + "LArm.PointX(\"Attach\")", + "LArm.PointY(\"Attach\")", "yes", "", "20", @@ -2254,11 +2254,11 @@ "parameters": [ "RUpperArm", "Physics2Behavior", - "RUpperArm.PointX(BotAttach)", - "RUpperArm.PointY(BotAttach)", + "RUpperArm.PointX(\"BotAttach\")", + "RUpperArm.PointY(\"BotAttach\")", "RArm", - "RArm.PointX(Attach)", - "RArm.PointY(Attach)", + "RArm.PointX(\"Attach\")", + "RArm.PointY(\"Attach\")", "yes", "", "20", @@ -2279,11 +2279,11 @@ "parameters": [ "RThigh", "Physics2Behavior", - "RThigh.PointX(TopAttach)", - "RThigh.PointY(TopAttach)", + "RThigh.PointX(\"TopAttach\")", + "RThigh.PointY(\"TopAttach\")", "Torso", - "Torso.PointX(LegAttach)", - "Torso.PointY(LegAttach)", + "Torso.PointX(\"LegAttach\")", + "Torso.PointY(\"LegAttach\")", "yes", "", "-10", @@ -2304,11 +2304,11 @@ "parameters": [ "LThigh", "Physics2Behavior", - "LThigh.PointX(TopAttach)", - "LThigh.PointY(TopAttach)", + "LThigh.PointX(\"TopAttach\")", + "LThigh.PointY(\"TopAttach\")", "Torso", - "Torso.PointX(LegAttach)", - "Torso.PointY(LegAttach)", + "Torso.PointX(\"LegAttach\")", + "Torso.PointY(\"LegAttach\")", "yes", "", "-10", @@ -2329,11 +2329,11 @@ "parameters": [ "RThigh", "Physics2Behavior", - "RThigh.PointX(BotAttach)", - "RThigh.PointY(BotAttach)", + "RThigh.PointX(\"BotAttach\")", + "RThigh.PointY(\"BotAttach\")", "RLeg", - "RLeg.PointX(Attach)", - "RLeg.PointY(Attach)", + "RLeg.PointX(\"Attach\")", + "RLeg.PointY(\"Attach\")", "yes", "", "", @@ -2354,11 +2354,11 @@ "parameters": [ "LThigh", "Physics2Behavior", - "LThigh.PointX(BotAttach)", - "LThigh.PointY(BotAttach)", + "LThigh.PointX(\"BotAttach\")", + "LThigh.PointY(\"BotAttach\")", "LLeg", - "LLeg.PointX(Attach)", - "LLeg.PointY(Attach)", + "LLeg.PointX(\"Attach\")", + "LLeg.PointY(\"Attach\")", "yes", "", "", diff --git a/newIDE/app/src/fixtures/rain/rain.json b/newIDE/app/src/fixtures/rain/rain.json index c4e8296db5b2..c246eda09719 100644 --- a/newIDE/app/src/fixtures/rain/rain.json +++ b/newIDE/app/src/fixtures/rain/rain.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/random-color-picker/random-color-picker.json b/newIDE/app/src/fixtures/random-color-picker/random-color-picker.json index 2887343bef1a..8eb2a4ad4c4a 100644 --- a/newIDE/app/src/fixtures/random-color-picker/random-color-picker.json +++ b/newIDE/app/src/fixtures/random-color-picker/random-color-picker.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/rotate-toward-mouse/rotate-toward-mouse.json b/newIDE/app/src/fixtures/rotate-toward-mouse/rotate-toward-mouse.json index 18891cefedeb..5fb0dadc6d3d 100644 --- a/newIDE/app/src/fixtures/rotate-toward-mouse/rotate-toward-mouse.json +++ b/newIDE/app/src/fixtures/rotate-toward-mouse/rotate-toward-mouse.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/rotate-toward-position/rotate-toward-position.json b/newIDE/app/src/fixtures/rotate-toward-position/rotate-toward-position.json index 9d84df67f65e..706ccf1925d0 100644 --- a/newIDE/app/src/fixtures/rotate-toward-position/rotate-toward-position.json +++ b/newIDE/app/src/fixtures/rotate-toward-position/rotate-toward-position.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/rotate-with-keypress/rotate-with-keypress.json b/newIDE/app/src/fixtures/rotate-with-keypress/rotate-with-keypress.json index d4133f91fe8e..2d017bfdc474 100644 --- a/newIDE/app/src/fixtures/rotate-with-keypress/rotate-with-keypress.json +++ b/newIDE/app/src/fixtures/rotate-with-keypress/rotate-with-keypress.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/save-load/save-load.json b/newIDE/app/src/fixtures/save-load/save-load.json index 1f8be2616cf9..907f600f0c53 100644 --- a/newIDE/app/src/fixtures/save-load/save-load.json +++ b/newIDE/app/src/fixtures/save-load/save-load.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/screen-shake/screen-shake.json b/newIDE/app/src/fixtures/screen-shake/screen-shake.json index 21eb779bb0e4..efc7aabf2f61 100644 --- a/newIDE/app/src/fixtures/screen-shake/screen-shake.json +++ b/newIDE/app/src/fixtures/screen-shake/screen-shake.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/shoot-bullet-in-parabola/shoot-bullet-in-parabola.json b/newIDE/app/src/fixtures/shoot-bullet-in-parabola/shoot-bullet-in-parabola.json index b74ac3780308..0a60b5d79396 100644 --- a/newIDE/app/src/fixtures/shoot-bullet-in-parabola/shoot-bullet-in-parabola.json +++ b/newIDE/app/src/fixtures/shoot-bullet-in-parabola/shoot-bullet-in-parabola.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/shoot-bullets/shoot-bullets.json b/newIDE/app/src/fixtures/shoot-bullets/shoot-bullets.json index f02402b4b994..34120dfa321c 100644 --- a/newIDE/app/src/fixtures/shoot-bullets/shoot-bullets.json +++ b/newIDE/app/src/fixtures/shoot-bullets/shoot-bullets.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -522,8 +522,8 @@ "parameters": [ "", "bullet", - "kenney.PointX(firespot)", - "kenney.PointY(firespot)", + "kenney.PointX(\"firespot\")", + "kenney.PointY(\"firespot\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/shooting-bullets-explanation/shooting-bullets-explanation.json b/newIDE/app/src/fixtures/shooting-bullets-explanation/shooting-bullets-explanation.json index a4b27ccd2937..2338eaa2496d 100644 --- a/newIDE/app/src/fixtures/shooting-bullets-explanation/shooting-bullets-explanation.json +++ b/newIDE/app/src/fixtures/shooting-bullets-explanation/shooting-bullets-explanation.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -444,8 +444,8 @@ "parameters": [ "", "Bullet", - "Tank.PointX(Canon)", - "Tank.PointY(Canon)", + "Tank.PointX(\"Canon\")", + "Tank.PointY(\"Canon\")", "" ], "subInstructions": [] @@ -899,8 +899,8 @@ "parameters": [ "", "Bullet", - "Tank.PointX(Canon)", - "Tank.PointY(Canon)", + "Tank.PointX(\"Canon\")", + "Tank.PointY(\"Canon\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/snap-object-to-grid/snap-object-to-grid.json b/newIDE/app/src/fixtures/snap-object-to-grid/snap-object-to-grid.json index 87d2e30e5f67..5229969e7dd1 100644 --- a/newIDE/app/src/fixtures/snap-object-to-grid/snap-object-to-grid.json +++ b/newIDE/app/src/fixtures/snap-object-to-grid/snap-object-to-grid.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/space-invaders/space-invaders.json b/newIDE/app/src/fixtures/space-invaders/space-invaders.json new file mode 100644 index 000000000000..cc3911bf0608 --- /dev/null +++ b/newIDE/app/src/fixtures/space-invaders/space-invaders.json @@ -0,0 +1,7183 @@ +{ + "firstLayout": "", + "gdVersion": { + "build": 98, + "major": 4, + "minor": 0, + "revision": 0 + }, + "properties": { + "adMobAppId": "", + "folderProject": false, + "linuxExecutableFilename": "", + "macExecutableFilename": "", + "orientation": "landscape", + "packageName": "com.zat.invaders", + "projectFile": "G:\\Games\\Invaders\\invaders.json", + "scaleMode": "linear", + "sizeOnStartupMode": "adaptWidth", + "useExternalSourceFiles": false, + "version": "1.0.0", + "winExecutableFilename": "", + "winExecutableIconFile": "", + "name": "Invaders", + "author": "Zat", + "windowWidth": 960, + "windowHeight": 540, + "latestCompilationDirectory": "", + "maxFPS": 60, + "minFPS": 10, + "verticalSync": false, + "platformSpecificAssets": {}, + "loadingScreen": { + "showGDevelopSplash": true + }, + "extensions": [ + { + "name": "BuiltinObject" + }, + { + "name": "BuiltinAudio" + }, + { + "name": "BuiltinVariables" + }, + { + "name": "BuiltinTime" + }, + { + "name": "BuiltinMouse" + }, + { + "name": "BuiltinKeyboard" + }, + { + "name": "BuiltinJoystick" + }, + { + "name": "BuiltinCamera" + }, + { + "name": "BuiltinWindow" + }, + { + "name": "BuiltinFile" + }, + { + "name": "BuiltinNetwork" + }, + { + "name": "BuiltinScene" + }, + { + "name": "BuiltinAdvanced" + }, + { + "name": "Sprite" + }, + { + "name": "BuiltinCommonInstructions" + }, + { + "name": "BuiltinCommonConversions" + }, + { + "name": "BuiltinStringInstructions" + }, + { + "name": "BuiltinMathematicalTools" + }, + { + "name": "BuiltinExternalLayouts" + } + ], + "platforms": [ + { + "name": "GDevelop JS platform" + } + ], + "currentPlatform": "GDevelop JS platform" + }, + "resources": { + "resources": [ + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/Background1.jpeg", + "kind": "image", + "metadata": "", + "name": "Background1.jpeg", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/playerShip1_red.png", + "kind": "image", + "metadata": "", + "name": "playerShip1_red.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/enemyGreen2.png", + "kind": "image", + "metadata": "", + "name": "enemyGreen2.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/enemyBlack5.png", + "kind": "image", + "metadata": "", + "name": "enemyBlack5.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/enemyBlue1.png", + "kind": "image", + "metadata": "", + "name": "enemyBlue1.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/spaceStation_028.png", + "kind": "image", + "metadata": "", + "name": "spaceStation_028.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/laserRed06.png", + "kind": "image", + "metadata": "", + "name": "laserRed06.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/laserGreen04.png", + "kind": "image", + "metadata": "", + "name": "laserGreen04.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/Base.png", + "kind": "image", + "metadata": "", + "name": "Base.png", + "smoothed": true, + "userAdded": false + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/GDevelop.png", + "kind": "image", + "metadata": "", + "name": "GDevelop.png", + "smoothed": true, + "userAdded": false + }, + { + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/Audio/laser1.ogg", + "kind": "audio", + "metadata": "", + "name": "laser1.ogg", + "userAdded": true + }, + { + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/Audio/laser8.ogg", + "kind": "audio", + "metadata": "", + "name": "laser8.ogg", + "userAdded": true + }, + { + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/Audio/twoTone1.ogg", + "kind": "audio", + "metadata": "", + "name": "twoTone1.ogg", + "userAdded": true + }, + { + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/Audio/lowRandom.ogg", + "kind": "audio", + "metadata": "", + "name": "lowRandom.ogg", + "userAdded": true + }, + { + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/Kenney Future Narrow.ttf", + "kind": "font", + "metadata": "", + "name": "Kenney Future Narrow.ttf", + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/Left.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Left.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/Right.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Right.png", + "smoothed": true, + "userAdded": true + }, + { + "alwaysLoaded": false, + "file": "https://df5lqcdudryde.cloudfront.net/examples/space-invaders/GFX/Fire.png", + "kind": "image", + "metadata": "", + "name": "GFX\\Fire.png", + "smoothed": true, + "userAdded": true + } + ], + "resourceFolders": [] + }, + "objects": [], + "objectsGroups": [], + "variables": [ + { + "name": "Score", + "value": "" + } + ], + "layouts": [ + { + "b": 209, + "disableInputWhenNotFocused": true, + "mangledName": "Phase1", + "name": "Phase1", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 209, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": false, + "zoomFactor": 1 + }, + "objectsGroups": [ + { + "name": "Enemy", + "objects": [ + { + "name": "Invader1" + }, + { + "name": "Invader2" + }, + { + "name": "Invader3" + } + ] + } + ], + "variables": [ + { + "name": "Direction", + "value": "" + }, + { + "name": "Score", + "value": "" + }, + { + "name": "InvaderCOUNT", + "value": "" + }, + { + "name": "Delay", + "value": "" + }, + { + "name": "Row", + "value": "" + }, + { + "name": "Invader1", + "value": "" + }, + { + "name": "Invader2", + "value": "" + }, + { + "name": "Invader3", + "value": "" + }, + { + "name": "UFOTime", + "value": "" + }, + { + "name": "BombNUM", + "value": "" + }, + { + "name": "RandVAR", + "value": "" + }, + { + "name": "BombMAX", + "value": "" + }, + { + "name": "BombFREQ", + "value": "" + } + ], + "instances": [ + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Ship", + "width": 0, + "x": 497, + "y": 459, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 557, + "layer": "", + "locked": true, + "name": "Background", + "width": 1077, + "x": -15, + "y": -14, + "zOrder": -10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Left", + "width": 128, + "x": 11, + "y": 404, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Right", + "width": 128, + "x": 135, + "y": 404, + "zOrder": 3, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 128, + "layer": "Controls", + "locked": false, + "name": "Fire", + "width": 128, + "x": 915, + "y": 404, + "zOrder": 4, + "numberProperties": [ + { + "name": "animation", + "value": 0 + } + ], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Count", + "width": 0, + "x": 746, + "y": 597, + "zOrder": 5, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 20, + "layer": "", + "locked": false, + "name": "ScoreNUM", + "width": 89, + "x": 110, + "y": 19, + "zOrder": 6, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "ScoreTEXT", + "width": 0, + "x": 25, + "y": 19, + "zOrder": 8, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "BombTextNUM", + "width": 0, + "x": 667, + "y": 599, + "zOrder": 9, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 378, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 383, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 388, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 373, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 368, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 358, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 393, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 403, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 413, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 353, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 408, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 348, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 398, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 363, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 604, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 609, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 614, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 599, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 594, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 584, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 619, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 629, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 639, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 579, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 634, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 574, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 624, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 589, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 153, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 158, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 163, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 148, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 143, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 133, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 168, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 178, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 188, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 128, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 183, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 123, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 173, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 138, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 386, + "zOrder": 10, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 378, + "zOrder": 11, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 827, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 832, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 394, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 402, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 837, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 822, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 386, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 817, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 807, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 842, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 852, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 862, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 802, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 857, + "y": 370, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 797, + "y": 378, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 847, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Base", + "width": 0, + "x": 812, + "y": 362, + "zOrder": 12, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "name": "Invader1", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "Invader", + "useMultipleDirections": false, + "directions": [ + { + "looping": true, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyGreen2.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Invader2", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyBlack5.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Invader3", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "enemyBlue1.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Ship", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "Ship", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "playerShip1_red.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 21, + "y": 16 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [ + [ + { + "x": 24, + "y": 24 + }, + { + "x": 56, + "y": 24 + }, + { + "x": 56, + "y": 56 + }, + { + "x": 24, + "y": 56 + } + ] + ] + } + ] + } + ] + } + ] + }, + { + "name": "Background", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Background1.jpeg", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Bullet", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "extraBorder": 0, + "name": "DestroyOutside", + "type": "DestroyOutsideBehavior::DestroyOutside" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "laserRed06.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 4, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Left", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Left.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Right", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Right.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Fire", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GFX\\Fire.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "ScoreTEXT", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "SCORE:", + "font": "Kenney Future Narrow.ttf", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "bold": false, + "italic": false, + "name": "ScoreNUM", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "00000", + "font": "Kenney Future Narrow.ttf", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "name": "UFO", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [ + { + "extraBorder": 0, + "name": "DestroyOutside", + "type": "DestroyOutsideBehavior::DestroyOutside" + } + ], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "spaceStation_028.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "name": "Bomb", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "laserGreen04.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": false, + "italic": false, + "name": "Count", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "24", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "bold": false, + "italic": false, + "name": "BombTextNUM", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Text", + "font": "", + "characterSize": 20, + "color": { + "b": 255, + "g": 255, + "r": 255 + } + }, + { + "name": "Base", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Base.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Initialise Scene", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"InvaderTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"UFOTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader1", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader2", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader3", + "=", + "1\n" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "UFOTime", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.5" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "InvaderCOUNT", + "=", + "24" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "=", + "0" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombFREQ", + "=", + "2" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "If game is not running on Mobile do not display the touch controls", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "SystemInfo::IsMobile" + }, + "parameters": [], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "HideLayer" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Create the wave of invaders", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "infiniteLoopWarning": true, + "type": "BuiltinCommonInstructions::While", + "whileConditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "Invader1", + "<", + "9" + ], + "subInstructions": [] + } + ], + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader1", + "Variable(Invader1)*60\n", + "0", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader1", + "+", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader2", + "Variable(Invader2)*60\n", + "40", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader2", + "+", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Invader3", + "Variable(Invader3)*60\n", + "80", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Invader3", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Invaders", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Move Invaders each 'Delay' sec", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "Variable(Delay)", + "\"InvaderTimer\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader1", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader1", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader1", + "=", + "20+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader2", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader2", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader2", + "=", + "60+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Invader3", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Invader3", + "+", + "40*Variable(Direction)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Invader3", + "=", + "100+(20*Variable(Row))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "RandVAR", + "=", + "RandomInRange(0, 30)" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::And" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "BombNUM", + "<", + "Variable(BombMAX)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "RandVAR", + "<", + "Variable(BombFREQ)" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bomb", + "Invader1.X()", + "Invader1.Y()", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"InvaderTimer\"" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "lowRandom.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Did an Invader reach the edge of screen?", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Enemy", + "<", + "60" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "Delay", + ">", + "0.1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "-", + "0.1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Enemy", + ">", + "980" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Direction", + "=", + "-1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Row", + "+", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Did an Invader hit the Base", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Enemy", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Speed of Invaders increases as their numbers diminish", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "18" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.4" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "6" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "12" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.3" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "7" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "7" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.2" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombMAX", + "=", + "8" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "VarScene" + }, + "parameters": [ + "InvaderCOUNT", + "<", + "3" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "Delay", + "=", + "0.1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player Input Move", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player on Mobile", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "LayerVisible" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Left", + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + ">", + "50" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "-", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Right", + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + "<", + "1000" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "+", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "SourisSurObjet" + }, + "parameters": [ + "Fire", + "", + "yes", + "" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Bullet", + "<", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "Ship.X()", + "Ship.Y()-20", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser8.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Player using keyboard", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": true, + "value": "LayerVisible" + }, + "parameters": [ + "", + "\"Controls\"" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + ">", + "50" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "-", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Right" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PosX" + }, + "parameters": [ + "Ship", + "<", + "1000" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "Ship", + "+", + "120 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "Space" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "KeyPressed" + }, + "parameters": [ + "", + "LControl" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Bullet", + "<", + "1" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "Bullet", + "Ship.X()", + "Ship.Y()-20", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser8.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ] + } + ], + "parameters": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Bullets", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bullet", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Bullet", + "-", + "300 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Enemy", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Enemy", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "InvaderCOUNT", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "+", + "10 / Variable(Delay)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Bomb", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bullet", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Bombs", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "Bomb", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreY" + }, + "parameters": [ + "Bomb", + "+", + "180 * TimeDelta()" + ], + "subInstructions": [] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "PosY" + }, + "parameters": [ + "Bomb", + ">", + "600" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Bomb", + "Base", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bomb", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Base", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "BombNUM", + "-", + "1" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "laser1.ogg", + "no", + "30", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "UFO", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "15", + "\"UFOTimer\"" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Create" + }, + "parameters": [ + "", + "UFO", + "0", + "60", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "\"UFOTimer\"" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::ForEach", + "object": "UFO", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "MettreX" + }, + "parameters": [ + "UFO", + "+", + "90 * TimeDelta()" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "PlaySound" + }, + "parameters": [ + "", + "twoTone1.ogg", + "no", + "5", + "" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "UFO", + "Bullet", + "", + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "Bullet", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "Delete" + }, + "parameters": [ + "UFO", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "+", + "200" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarScene" + }, + "parameters": [ + "UFOTime", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "All Enemies dead? Load Phase1 again, or Phase2, 3 etc if you have more :)", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "NbObjet" + }, + "parameters": [ + "Enemy", + "=", + "0" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Phase1\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Update GUI", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "=", + "trunc(GlobalVariable(Score))" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "ScoreNUM", + "=", + "LargeNumberToString(GlobalVariable(Score))" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": false, + "folded": false, + "name": "Invaded!", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Invaders have collided with player ship :( Go back to Title, or a Game Over screen, Leaderboard if you have one.", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Ship", + "Enemy", + "", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "CollisionNP" + }, + "parameters": [ + "Ship", + "Bomb", + "", + "" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Title\"", + "" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "colorB": 228, + "colorG": 176, + "colorR": 74, + "creationTime": 0, + "disabled": true, + "folded": false, + "name": "Debugging", + "source": "", + "type": "BuiltinCommonInstructions::Group", + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [ + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "Count", + "=", + "VariableString(InvaderCOUNT)" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "TextObject::String" + }, + "parameters": [ + "BombTextNUM", + "=", + "VariableString(BombNUM)" + ], + "subInstructions": [] + } + ], + "events": [] + } + ], + "parameters": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [], + "actions": [], + "events": [] + } + ], + "layers": [ + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + }, + { + "name": "Controls", + "visibility": true, + "cameras": [], + "effects": [] + } + ], + "behaviorsSharedData": [] + }, + { + "b": 209, + "disableInputWhenNotFocused": true, + "mangledName": "Title", + "name": "Title", + "oglFOV": 90, + "oglZFar": 500, + "oglZNear": 1, + "r": 209, + "standardSortMethod": true, + "stopSoundsOnStartup": true, + "title": "", + "v": 209, + "uiSettings": { + "grid": false, + "gridB": 255, + "gridG": 180, + "gridHeight": 32, + "gridOffsetX": 0, + "gridOffsetY": 0, + "gridR": 158, + "gridWidth": 32, + "snap": true, + "windowMask": true, + "zoomFactor": 0.784 + }, + "objectsGroups": [], + "variables": [], + "instances": [ + { + "angle": 0, + "customSize": true, + "height": 206, + "layer": "", + "locked": false, + "name": "Title", + "width": 831, + "x": 178, + "y": 49, + "zOrder": 1, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Instruction2", + "width": 0, + "x": 139, + "y": 351, + "zOrder": 2, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 557, + "layer": "", + "locked": false, + "name": "Background", + "width": 1077, + "x": -15, + "y": -14, + "zOrder": -3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": true, + "height": 87, + "layer": "", + "locked": false, + "name": "NewObject3", + "width": 308, + "x": 518, + "y": 462, + "zOrder": 3, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + }, + { + "angle": 0, + "customSize": false, + "height": 0, + "layer": "", + "locked": false, + "name": "Instruction1", + "width": 0, + "x": 133, + "y": 242, + "zOrder": 4, + "numberProperties": [], + "stringProperties": [], + "initialVariables": [] + } + ], + "objects": [ + { + "name": "Background", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "Background1.jpeg", + "points": [], + "originPoint": { + "name": "origine", + "x": 0, + "y": 0 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + }, + { + "bold": true, + "italic": false, + "name": "Title", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "INVADERS", + "font": "Kenney Future Narrow.ttf", + "characterSize": 140, + "color": { + "b": 0, + "g": 0, + "r": 178 + } + }, + { + "bold": false, + "italic": false, + "name": "Instruction1", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Desktop - Left, Right to move base, Ctrl or Space to Fire. \n\nMobile - Use touch controls", + "font": "Kenney Future Narrow.ttf", + "characterSize": 24, + "color": { + "b": 133, + "g": 251, + "r": 250 + } + }, + { + "bold": false, + "italic": false, + "name": "Instruction2", + "smoothed": true, + "type": "TextObject::Text", + "underlined": false, + "variables": [], + "behaviors": [], + "string": "Touch or press any key to start.", + "font": "Kenney Future Narrow.ttf", + "characterSize": 40, + "color": { + "b": 76, + "g": 218, + "r": 145 + } + }, + { + "name": "NewObject3", + "type": "Sprite", + "updateIfNotVisible": false, + "variables": [], + "behaviors": [], + "animations": [ + { + "name": "", + "useMultipleDirections": false, + "directions": [ + { + "looping": false, + "timeBetweenFrames": 1, + "sprites": [ + { + "hasCustomCollisionMask": false, + "image": "GDevelop.png", + "points": [], + "originPoint": { + "name": "origine", + "x": 277, + "y": 112 + }, + "centerPoint": { + "automatic": true, + "name": "centre", + "x": 0, + "y": 0 + }, + "customCollisionMask": [] + } + ] + } + ] + } + ] + } + ], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "DepartScene" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "SetFullScreen" + }, + "parameters": [ + "", + "yes", + "" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ResetTimer" + }, + "parameters": [ + "", + "TitleDELAY" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "ModVarGlobal" + }, + "parameters": [ + "Score", + "=", + "0" + ], + "subInstructions": [] + } + ], + "events": [] + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Comment", + "color": { + "b": 109, + "g": 230, + "r": 255, + "textB": 0, + "textG": 0, + "textR": 0 + }, + "comment": "Wait before allowing to start a new game", + "comment2": "" + }, + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "Timer" + }, + "parameters": [ + "", + "2", + "TitleDELAY" + ], + "subInstructions": [] + } + ], + "actions": [], + "events": [ + { + "disabled": false, + "folded": false, + "type": "BuiltinCommonInstructions::Standard", + "conditions": [ + { + "type": { + "inverted": false, + "value": "BuiltinCommonInstructions::Or" + }, + "parameters": [], + "subInstructions": [ + { + "type": { + "inverted": false, + "value": "SourisBouton" + }, + "parameters": [ + "", + "Left" + ], + "subInstructions": [] + }, + { + "type": { + "inverted": false, + "value": "AnyKeyPressed" + }, + "parameters": [ + "" + ], + "subInstructions": [] + } + ] + } + ], + "actions": [ + { + "type": { + "inverted": false, + "value": "Scene" + }, + "parameters": [ + "", + "\"Phase1\"", + "yes" + ], + "subInstructions": [] + } + ], + "events": [] + } + ] + } + ], + "layers": [ + { + "name": "", + "visibility": true, + "cameras": [ + { + "defaultSize": true, + "defaultViewport": true, + "height": 0, + "viewportBottom": 1, + "viewportLeft": 0, + "viewportRight": 1, + "viewportTop": 0, + "width": 0 + } + ], + "effects": [] + } + ], + "behaviorsSharedData": [] + } + ], + "externalEvents": [], + "eventsFunctionsExtensions": [], + "externalLayouts": [], + "externalSourceFiles": [] +} \ No newline at end of file diff --git a/newIDE/app/src/fixtures/space-shooter-with-functions/space-shooter-with-functions.json b/newIDE/app/src/fixtures/space-shooter-with-functions/space-shooter-with-functions.json index 545806ea9060..6e0741c001f7 100644 --- a/newIDE/app/src/fixtures/space-shooter-with-functions/space-shooter-with-functions.json +++ b/newIDE/app/src/fixtures/space-shooter-with-functions/space-shooter-with-functions.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -2556,7 +2556,7 @@ "", "EnemyBullet", "GreenEnemy.X()", - "GreenEnemy.PointY(Centre)", + "GreenEnemy.PointY(\"Centre\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/space-shooter/space-shooter.json b/newIDE/app/src/fixtures/space-shooter/space-shooter.json index 92b4b89be57c..e77d2cfb4729 100644 --- a/newIDE/app/src/fixtures/space-shooter/space-shooter.json +++ b/newIDE/app/src/fixtures/space-shooter/space-shooter.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -2557,7 +2557,7 @@ "", "EnemyBullet", "GreenEnemy.X()", - "GreenEnemy.PointY(Centre)", + "GreenEnemy.PointY(\"Centre\")", "" ], "subInstructions": [] diff --git a/newIDE/app/src/fixtures/splash-screen/splash-screen.json b/newIDE/app/src/fixtures/splash-screen/splash-screen.json index 63765b4a672e..841ea3997b2f 100644 --- a/newIDE/app/src/fixtures/splash-screen/splash-screen.json +++ b/newIDE/app/src/fixtures/splash-screen/splash-screen.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/sprite-fade-in-out/sprite-fade-in-out.json b/newIDE/app/src/fixtures/sprite-fade-in-out/sprite-fade-in-out.json index 424c9382283b..63a47f513f51 100644 --- a/newIDE/app/src/fixtures/sprite-fade-in-out/sprite-fade-in-out.json +++ b/newIDE/app/src/fixtures/sprite-fade-in-out/sprite-fade-in-out.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/take-screenshot/take-screenshot.json b/newIDE/app/src/fixtures/take-screenshot/take-screenshot.json index 25b8f700a7f7..1b59c342b4e4 100644 --- a/newIDE/app/src/fixtures/take-screenshot/take-screenshot.json +++ b/newIDE/app/src/fixtures/take-screenshot/take-screenshot.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/text-entry-object/text-entry-object.json b/newIDE/app/src/fixtures/text-entry-object/text-entry-object.json index bf8cd9aee62f..d2d24f429854 100644 --- a/newIDE/app/src/fixtures/text-entry-object/text-entry-object.json +++ b/newIDE/app/src/fixtures/text-entry-object/text-entry-object.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/text-fade-in-out/text-fade-in-out.json b/newIDE/app/src/fixtures/text-fade-in-out/text-fade-in-out.json index 6f462574acfe..958faa655c12 100644 --- a/newIDE/app/src/fixtures/text-fade-in-out/text-fade-in-out.json +++ b/newIDE/app/src/fixtures/text-fade-in-out/text-fade-in-out.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/text-to-speech/text-to-speech.json b/newIDE/app/src/fixtures/text-to-speech/text-to-speech.json index b8e966942d69..56ead2125420 100644 --- a/newIDE/app/src/fixtures/text-to-speech/text-to-speech.json +++ b/newIDE/app/src/fixtures/text-to-speech/text-to-speech.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/toggle-music-play-sound/toggle-music-play-sound.json b/newIDE/app/src/fixtures/toggle-music-play-sound/toggle-music-play-sound.json index 810e0d085d5c..935a9f196ea1 100644 --- a/newIDE/app/src/fixtures/toggle-music-play-sound/toggle-music-play-sound.json +++ b/newIDE/app/src/fixtures/toggle-music-play-sound/toggle-music-play-sound.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -803,9 +803,9 @@ "parameters": [ "slider_button", "=", - "volume_slider.PointX(button)", + "volume_slider.PointX(\"button\")", "=", - "volume_slider.PointY(button)" + "volume_slider.PointY(\"button\")" ], "subInstructions": [] } @@ -936,7 +936,7 @@ "parameters": [ "slider_button", ">=", - "volume_slider.PointX(button)" + "volume_slider.PointX(\"button\")" ], "subInstructions": [] } @@ -982,7 +982,7 @@ "parameters": [ "slider_button", "<", - "volume_slider.PointX(button)" + "volume_slider.PointX(\"button\")" ], "subInstructions": [] } diff --git a/newIDE/app/src/fixtures/type-on-text-effect/type-on-text-effect.json b/newIDE/app/src/fixtures/type-on-text-effect/type-on-text-effect.json index ef5e45286e31..985c34a32632 100644 --- a/newIDE/app/src/fixtures/type-on-text-effect/type-on-text-effect.json +++ b/newIDE/app/src/fixtures/type-on-text-effect/type-on-text-effect.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/z-depth/z-depth.json b/newIDE/app/src/fixtures/z-depth/z-depth.json index c1a26efda735..459d36befaa8 100644 --- a/newIDE/app/src/fixtures/z-depth/z-depth.json +++ b/newIDE/app/src/fixtures/z-depth/z-depth.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 diff --git a/newIDE/app/src/fixtures/zombie-laser/zombie-laser.json b/newIDE/app/src/fixtures/zombie-laser/zombie-laser.json index 53b7b8488e96..0623c0fcbc80 100644 --- a/newIDE/app/src/fixtures/zombie-laser/zombie-laser.json +++ b/newIDE/app/src/fixtures/zombie-laser/zombie-laser.json @@ -1,7 +1,7 @@ { "firstLayout": "", "gdVersion": { - "build": 97, + "build": 98, "major": 4, "minor": 0, "revision": 0 @@ -2664,8 +2664,8 @@ }, "parameters": [ "LaserObstacle", - "Hero.PointX(Barrel)", - "Hero.PointY(Barrel)", + "Hero.PointX(\"Barrel\")", + "Hero.PointY(\"Barrel\")", "Hero.Direction()", "800", "ContactX", @@ -2796,7 +2796,7 @@ "parameters": [ "ContactX", "=", - "Hero.PointX(Barrel) + 800*cos(ToRad(Hero.Angle()))" + "Hero.PointX(\"Barrel\") + 800*cos(ToRad(Hero.Angle()))" ], "subInstructions": [] }, @@ -2808,7 +2808,7 @@ "parameters": [ "ContactY", "=", - "Hero.PointY(Barrel) + 800*sin(ToRad(Hero.Angle()))" + "Hero.PointY(\"Barrel\") + 800*sin(ToRad(Hero.Angle()))" ], "subInstructions": [] } @@ -2843,8 +2843,8 @@ }, "parameters": [ "LaserDrawer", - "Hero.PointX(Barrel)", - "Hero.PointY(Barrel)", + "Hero.PointX(\"Barrel\")", + "Hero.PointY(\"Barrel\")", "Variable(ContactX)", "Variable(ContactY)", "3"