Speed Platformer - 100% Pen
@Stage\n\n@Custom Levels\n\ndefine None\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round ((255) * (0.5))) * (65536))) + ((round ((175) * (0.5))) * (256))) + (round ((0) * (0.5)))) to [levels v]\nchange [currentindex v] by (1)\nadd ((size) + (3)) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round (255)) * (65536))) + ((round (175)) * (256))) + (round (0))) to [levels v]\nchange [currentindex v] by (1)\nadd (size) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\n\ndefine None\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round ((90) * (0.5))) * (65536))) + ((round ((150) * (0.5))) * (256))) + (round ((0) * (0.5)))) to [levels v]\nchange [currentindex v] by (1)\nadd ((size) + (3)) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round (90)) * (65536))) + ((round (150)) * (256))) + (round (0))) to [levels v]\nchange [currentindex v] by (1)\nadd (size) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\n\ndefine None\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round ((255) * (0.5))) * (65536))) + ((round ((30) * (0.5))) * (256))) + (round ((0) * (0.5)))) to [levels v]\nchange [currentindex v] by (1)\nadd ((size) + (3)) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round (255)) * (65536))) + ((round (30)) * (256))) + (round (0))) to [levels v]\nchange [currentindex v] by (1)\nadd (size) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\n\ndefine New Level\nadd (currentIndex) to [levelindexpositions v]\n\ndefine End Level\nadd (currentIndex) to [levelindexpositions v]\n\ndefine None\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round ((255) * (0.5))) * (65536))) + ((round ((240) * (0.5))) * (256))) + (round ((200) * (0.5)))) to [levels v]\nchange [currentindex v] by (1)\nadd ((size) + (3)) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd ((y1) + (-120)) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round (255)) * (65536))) + ((round (240)) * (256))) + (round (200))) to [levels v]\nchange [currentindex v] by (1)\nadd (size) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd ((y2) + (-120)) to [levels v]\nchange [currentindex v] by (1)\n\nNew Level\nGround x1 (-235) y1 (0) x2 (235) y2 (0) size (15)\nLava x1 (-50) y1 (0) x2 (50) y2 (0) size (15)\nBounce x1 (-100) y1 (0) x2 (-50) size (15)\nEnd Level\n\nwhen I receive [customlevels v]\nset [level v] to [1]\n\n@Levels\n\ndefine NewLevel\nadd (currentIndex) to [levelindexpositions v]\n\ndefine EndLevel\nadd (currentIndex) to [levelindexpositions v]\n\ndefine None\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd (y1) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round ((r) * (0.5))) * (65536))) + ((round ((g) * (0.5))) * (256))) + (round ((b) * (0.5)))) to [levels v]\nchange [currentindex v] by (1)\nadd ((size) + (3)) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd (y2) to [levels v]\nchange [currentindex v] by (1)\nadd (x1) to [levels v]\nchange [currentindex v] by (1)\nadd (y1) to [levels v]\nchange [currentindex v] by (1)\nadd (((((round (255)) * (16777216)) + ((round (r)) * (65536))) + ((round (g)) * (256))) + (round (b))) to [levels v]\nchange [currentindex v] by (1)\nadd (size) to [levels v]\nchange [currentindex v] by (1)\nadd (x2) to [levels v]\nchange [currentindex v] by (1)\nadd (y2) to [levels v]\nchange [currentindex v] by (1)\n\ndefine Tutorial Levels\nNewLevel\nAddLine x1 (-235) y1 (groundY) x2 (235) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nEndLevel\nNewLevel\nAddLine x1 (-235) y1 (groundY) x2 (-75) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (-75) y1 (groundY) x2 (-75) y2 ((groundY) + (60)) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (-75) y1 ((groundY) + (60)) x2 (75) y2 ((groundY) + (60)) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (75) y1 ((groundY) + (60)) x2 (75) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (75) y1 (groundY) x2 (235) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nEndLevel\nNewLevel\nAddLine x1 (-235) y1 (groundY) x2 (-75) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (-75) y1 (groundY) x2 (235) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (-75) y1 (groundY) x2 (75) y2 (groundY) colour: r (255) g (30) b (0) size (15)\nEndLevel\nNewLevel\nAddLine x1 (-235) y1 (groundY) x2 (0) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (0) y1 (groundY) x2 (0) y2 ((groundY) + (200)) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (0) y1 ((groundY) + (200)) x2 (235) y2 ((groundY) + (200)) colour: r (90) g (150) b (0) size (15)\nEndLevel\nNewLevel\nAddLine x1 (-235) y1 (groundY) x2 (-75) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (0) y1 (groundY) x2 (75) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nAddLine x1 (150) y1 (groundY) x2 (235) y2 (groundY) colour: r (90) g (150) b (0) size (15)\nEndLevel\n\ndefine Levels 11 - 15\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (-200) y2 (groundY) size (15)\nGround x1 (-150) y1 (groundY) x2 (-150) y2 ((groundY) + (80)) size (10)\nGround x1 (-140) y1 ((groundY) + (80)) x2 (-160) y2 ((groundY) + (80)) size (15)\nGround x1 (-50) y1 (groundY) x2 (-50) y2 ((groundY) + (140)) size (10)\nGround x1 (-40) y1 ((groundY) + (140)) x2 (-60) y2 ((groundY) + (140)) size (15)\nGround x1 (50) y1 (groundY) x2 (50) y2 ((groundY) + (200)) size (10)\nGround x1 (40) y1 ((groundY) + (200)) x2 (60) y2 ((groundY) + (200)) size (15)\nGround x1 (225) y1 (groundY) x2 (225) y2 ((groundY) + (200)) size (10)\nGround x1 (215) y1 ((groundY) + (200)) x2 (235) y2 ((groundY) + (200)) size (15)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (235) y2 (groundY) size (15)\nGround x1 (-235) y1 ((groundY) + (120)) x2 (235) y2 ((groundY) + (120)) size (15)\nBounce x1 (-50) y1 ((groundY) + (2.5)) x2 (50) y2 ((groundY) + (2.5)) size (10)\nLava x1 (-50) y1 ((groundY) + (118.2)) x2 (50) y2 ((groundY) + (118.2)) size (10)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (-150) y2 (groundY) size (15)\nGround x1 (-235) y1 ((groundY) + (100)) x2 (-235) y2 ((groundY) + (200)) size (15)\nGround x1 (-150) y1 ((groundY) + (0)) x2 (-150) y2 ((groundY) + (200)) size (15)\nGround x1 (-65) y1 ((groundY) + (0)) x2 (-65) y2 ((groundY) + (200)) size (15)\nGround x1 (20) y1 ((groundY) + (0)) x2 (20) y2 ((groundY) + (200)) size (15)\nGround x1 (105) y1 ((groundY) + (0)) x2 (105) y2 ((groundY) + (200)) size (15)\nEndLevel\nNewLevel\nLava x1 (-235) y1 (groundY) x2 (235) y2 (groundY) size (15)\nGround x1 (-235) y1 ((groundY) + (2.5)) x2 (-200) y2 ((groundY) + (2.5)) size (10)\nGround x1 (-100) y1 ((groundY) + (2.5)) x2 (-65) y2 ((groundY) + (2.5)) size (10)\nGround x1 (65) y1 ((groundY) + (50)) x2 (100) y2 ((groundY) + (50)) size (10)\nGround x1 (0) y1 ((groundY) + (120)) x2 (35) y2 ((groundY) + (120)) size (10)\nGround x1 (-75) y1 ((groundY) + (120)) x2 (-235) y2 ((groundY) + (120)) size (10)\nGround x1 (235) y1 ((groundY) + (0)) x2 (235) y2 ((groundY) + (200)) size (10)\nGround x1 (200) y1 ((groundY) + (200)) x2 (235) y2 ((groundY) + (200)) size (10)\nGround x1 (-150) y1 ((groundY) + (220)) x2 (235) y2 ((groundY) + (220)) size (10)\nEndLevel\nNewLevel\nQuickSand x1 (-235) y1 (groundY) x2 (235) y2 (groundY) size (15)\nGround x1 (-235) y1 (groundY) x2 (-180) y2 (groundY) size (15)\nQuickSand x1 (-180) y1 ((groundY) + (220)) x2 (-130) y2 ((groundY) + (220)) size (15)\nQuickSand x1 (-180) y1 ((groundY) + (100)) x2 (-130) y2 ((groundY) + (100)) size (15)\nGround x1 (-180) y1 ((groundY) + (220)) x2 (-180) y2 (groundY) size (15)\nGround x1 (-130) y1 ((groundY) + (295)) x2 (-130) y2 ((groundY) + (160)) size (15)\nGround x1 (-120) y1 ((groundY) + (60)) x2 (235) y2 ((groundY) + (60)) size (15)\nLava x1 (0) y1 ((groundY) + (60)) x2 (80) y2 ((groundY) + (60)) size (15)\nGround x1 (-130) y1 ((groundY) + (160)) x2 (235) y2 ((groundY) + (160)) size (15)\nEndLevel\n\ndefine Levels 6 - 10\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (-200) y2 (groundY) size (15)\nGround x1 (-50) y1 (groundY) x2 (-15) y2 (groundY) size (15)\nGround x1 (135) y1 (groundY) x2 (170) y2 (groundY) size (15)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (-100) y2 ((groundY) + (50)) size (15)\nLava x1 (0) y1 ((groundY) + (200)) x2 (0) y2 ((groundY) + (80)) size (15)\nGround x1 (20) y1 (groundY) x2 (235) y2 (groundY) size (15)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (235) y2 (groundY) size (15)\nLava x1 (-150) y1 (groundY) x2 (-150) y2 ((groundY) + (80)) size (15)\nLava x1 (-50) y1 (groundY) x2 (-50) y2 ((groundY) + (80)) size (15)\nLava x1 (50) y1 (groundY) x2 (50) y2 ((groundY) + (80)) size (15)\nLava x1 (150) y1 (groundY) x2 (150) y2 ((groundY) + (80)) size (15)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (-150) y2 (groundY) size (15)\nGround x1 (-150) y1 (groundY) x2 (-150) y2 ((groundY) + (150)) size (15)\nGround x1 (-150) y1 ((groundY) + (150)) x2 (-120) y2 ((groundY) + (150)) size (15)\nGround x1 (-40) y1 ((groundY) + (150)) x2 (40) y2 ((groundY) + (150)) size (15)\nGround x1 (120) y1 ((groundY) + (150)) x2 (235) y2 ((groundY) + (150)) size (15)\nGround x1 (-235) y1 ((groundY) + (230)) x2 (235) y2 ((groundY) + (230)) size (15)\nEndLevel\nNewLevel\nGround x1 (-235) y1 (groundY) x2 (0) y2 (groundY) size (15)\nGround x1 (0) y1 (groundY) x2 (0) y2 ((groundY) + (200)) size (15)\nGround x1 (-50) y1 ((groundY) + (200)) x2 (0) y2 ((groundY) + (200)) size (15)\nGround x1 (200) y1 ((groundY) + (50)) x2 (235) y2 ((groundY) + (50)) size (15)\nBounce x1 (-100) y1 ((groundY) + (2.5)) x2 (-50) y2 ((groundY) + (2.5)) size (10)\nEndLevel\n\ndefine None\nAddLine x1 (x1) y1 (y1) x2 (x2) y2 (y2) colour: r (255) g (30) b (0) size (size)\n\ndefine GameLevels\nTutorial Levels\nLevels 6 - 10\nLevels 11 - 15\nLevels 16 - 20\nLevels 21 - 25\nLevels 26 - 30\nLast Levels\nbroadcast (CustomLevels v)\n\ndefine None\nAddLine x1 (x1) y1 (y1) x2 (x2) y2 (y2) colour: r (255) g (240) b (200) size (size)\n\ndefine None\nAddLine x1 (x1) y1 (y1) x2 (x2) y2 (y2) colour: r (255) g (175) b (0) size (size)\n\ndefine Levels 16 - 20\nNewLevel\nBounce Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nLava Relative x1 (-235) y1 (230) +x (50) +y (0) size (15)\nQuickSand Relative x1 (-110) y1 (230) +x (60) +y (0) size (15)\nQuickSand Relative x1 (-110) y1 (50) +x (60) +y (0) size (15)\nGround Relative x1 (-110) y1 (230) +x (0) +y (-230) size (15)\nGround Relative x1 (-50) y1 (295) +x (0) +y (-150) size (15)\nGround Relative x1 (-50) y1 (50) +x (0) +y (-50) size (15)\nGround Relative x1 (-50) y1 (0) +x (80) +y (0) size (15)\nGround Relative x1 (30) y1 (0) +x (0) +y (100) size (15)\nGround Relative x1 (30) y1 (100) +x (80) +y (0) size (15)\nGround Relative x1 (110) y1 (0) +x (0) +y (100) size (15)\nGround Relative x1 (110) y1 (0) +x (125) +y (0) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (100) +y (100) size (15)\nGround Relative x1 (0) y1 (100) +x (100) +y (100) size (15)\nGround Relative x1 (235) y1 (295) +x (0) +y (-295) size (15)\nQuickSand Relative x1 (235) y1 (0) +x (-35) +y (0) size (15)\nEndLevel\nNewLevel\nLava Relative x1 (-235) y1 (0) +x (470) +y (0) size (15)\nGround Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (50) y1 (50) +x (0) +y (30) size (15)\nEndLevel\nNewLevel\nBounce Relative x1 (-235) y1 (0) +x (90) +y (0) size (15)\nGround Relative x1 (-235) y1 (0) +x (40) +y (0) size (15)\nGround Relative x1 (-140) y1 (0) +x (0) +y (190) size (15)\nGround Relative x1 (-60) y1 (0) +x (0) +y (190) size (15)\nBounce Relative x1 (-60) y1 (0) +x (80) +y (0) size (15)\nGround Relative x1 (20) y1 (0) +x (0) +y (190) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (-150) y1 (75) +x (50) +y (0) size (15)\nGround Relative x1 (0) y1 (140) +x (50) +y (0) size (15)\nGround Relative x1 (150) y1 (215) +x (50) +y (0) size (15)\nQuickSand Relative x1 (-150) y1 (75) +x (-20) +y (10) size (15)\nQuickSand Relative x1 (0) y1 (140) +x (-20) +y (10) size (15)\nQuickSand Relative x1 (150) y1 (215) +x (-20) +y (10) size (15)\nEndLevel\n\nwhen flag clicked\nset [level v] to [1]\nset [currentindex v] to [1]\nset [groundy v] to [-120]\ndelete (all) of [levelindexpositions v]\ndelete (all) of [levels v]\nGameLevels\n\ndefine Levels 21 - 25\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (470) +y (0) size (15)\nQuickSand Relative x1 (-235) y1 (5) +x (470) +y (0) size (5)\nBounce Relative x1 (-150) y1 (5) +x (50) +y (0) size (5)\nLava Relative x1 (-50) y1 (5) +x (100) +y (0) size (5)\nBounce Relative x1 (150) y1 (5) +x (-50) +y (0) size (5)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (25) +y (0) size (15)\nGround Relative x1 (-50) y1 (100) +x (50) +y (0) size (15)\nBounce Relative x1 (-175) y1 (-55) +x (35) +y (0) size (15)\nLava Relative x1 (-50) y1 (0) +x (0) +y (100) size (15)\nLava Relative x1 (-50) y1 (170) +x (0) +y (125) size (15)\nGround Relative x1 (150) y1 (100) +x (85) +y (0) size (15)\nQuickSand Relative x1 (50) y1 (100) +x (0) +y (83) size (15)\nEndLevel\nNewLevel\nLava Relative x1 (-135) y1 (0) +x (370) +y (0) size (15)\nBounce Relative x1 (-135) y1 (0) +x (100) +y (1) size (15)\nGround Relative x1 (-135) y1 (75) +x (35) +y (0) size (15)\nGround Relative x1 (-235) y1 (0) +x (100) +y (0) size (15)\nGround Relative x1 (-135) y1 (0) +x (0) +y (200) size (15)\nGround Relative x1 (-235) y1 (75) +x (0) +y (25) size (15)\nGround Relative x1 (-135) y1 (200) +x (-35) +y (0) size (15)\nQuickSand Relative x1 (-60) y1 (150) +x (0) +y (100) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (50) y1 (50) +x (5) +y (0) size (15)\nGround Relative x1 (-50) y1 (150) +x (5) +y (0) size (15)\nGround Relative x1 (150) y1 (200) +x (5) +y (0) size (15)\nLava Relative x1 (235) y1 (0) +x (0) +y (200) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (-150) y1 (50) +x (50) +y (0) size (15)\nGround Relative x1 (-150) y1 (50) +x (50) +y (-50) size (15)\nGround Relative x1 (-150) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (-75) y1 (0) +x (0) +y (50) size (15)\nGround Relative x1 (-75) y1 (50) +x (50) +y (-12.5) size (15)\nGround Relative x1 (-75) y1 (25) +x (50) +y (12.5) size (15)\nGround Relative x1 (0) y1 (0) +x (0) +y (50) size (15)\nGround Relative x1 (0) y1 (50) +x (50) +y (0) size (15)\nGround Relative x1 (0) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (0) y1 (25) +x (50) +y (0) size (7.5)\nGround Relative x1 (75) y1 (0) +x (0) +y (50) size (15)\nGround Relative x1 (75) y1 (50) +x (50) +y (0) size (15)\nGround Relative x1 (75) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (75) y1 (25) +x (50) +y (0) size (7.5)\nGround Relative x1 (150) y1 (0) +x (0) +y (50) size (15)\nGround Relative x1 (150) y1 (50) +x (50) +y (-25) size (15)\nGround Relative x1 (150) y1 (0) +x (50) +y (25) size (15)\nQuickSand Relative x1 (-235) y1 (140) +x (470) +y (0) size (5)\nEndLevel\n\ndefine None\nAddLine x1 (x1) y1 (y1) x2 (x2) y2 (y2) colour: r (90) g (150) b (0) size (size)\n\ndefine None\nGround x1 (x1) y1 ((y1) + (groundY)) x2 ((x1) + (x2)) y2 (((y1) + (groundY)) + (y2)) size (size)\n\ndefine None\nLava x1 (x1) y1 ((y1) + (groundY)) x2 ((x1) + (x2)) y2 (((y1) + (groundY)) + (y2)) size (size)\n\ndefine None\nQuickSand x1 (x1) y1 ((y1) + (groundY)) x2 ((x1) + (x2)) y2 (((y1) + (groundY)) + (y2)) size (size)\n\ndefine None\nBounce x1 (x1) y1 ((y1) + (groundY)) x2 ((x1) + (x2)) y2 (((y1) + (groundY)) + (y2)) size (size)\n\ndefine Levels 26 - 30\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (100) +y (0) size (15)\nLava Relative x1 (-135) y1 (0) +x (0) +y (200) size (15)\nGround Relative x1 (-135) y1 (100) +x (0) +y (0) size (15)\nGround Relative x1 (-135) y1 (150) +x (0) +y (50) size (15)\nQuickSand Relative x1 (0) y1 (125) +x (0) +y (75) size (15)\nQuickSand Relative x1 (50) y1 (100) +x (0) +y (75) size (15)\nQuickSand Relative x1 (100) y1 (75) +x (0) +y (75) size (15)\nGround Relative x1 (235) y1 (0) +x (-50) +y (0) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (85) +y (0) size (15)\nGround Relative x1 (-150) y1 (0) +x (50) +y (200) size (15)\nGround Relative x1 (-50) y1 (0) +x (-50) +y (200) size (15)\nGround Relative x1 (-50) y1 (0) +x (100) +y (0) size (15)\nGround Relative x1 (50) y1 (0) +x (50) +y (200) size (15)\nGround Relative x1 (150) y1 (0) +x (-50) +y (200) size (15)\nGround Relative x1 (150) y1 (0) +x (85) +y (0) size (15)\nEndLevel\nNewLevel\nLava Relative x1 (0) y1 (0) +x (-135) +y (150) size (15)\nLava Relative x1 (0) y1 (0) +x (135) +y (150) size (15)\nGround Relative x1 (-235) y1 (0) +x (100) +y (150) size (15)\nGround Relative x1 (235) y1 (0) +x (-100) +y (150) size (15)\nBounce Relative x1 (-50) y1 (60) +x (100) +y (0) size (15)\nLava Relative x1 (0) y1 (190) +x (0) +y (105) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (100) +y (200) size (15)\nGround Relative x1 (-100) y1 (0) +x (-35) +y (200) size (15)\nGround Relative x1 (-135) y1 (200) +x (50) +y (-35) size (15)\nGround Relative x1 (-85) y1 (165) +x (50) +y (-25) size (15)\nGround Relative x1 (-35) y1 (140) +x (50) +y (-10) size (15)\nGround Relative x1 (65) y1 (130) +x (50) +y (10) size (15)\nGround Relative x1 (115) y1 (140) +x (50) +y (25) size (15)\nGround Relative x1 (165) y1 (165) +x (50) +y (35) size (15)\nGround Relative x1 (215) y1 (200) +x (20) +y (0) size (15)\nLava Relative x1 (15) y1 (130) +x (50) +y (0) size (15)\nEndLevel\nNewLevel\nGround Relative x1 (-235) y1 (0) +x (100) +y (0) size (15)\nGround Relative x1 (-135) y1 (0) +x (0) +y (100) size (15)\nGround Relative x1 (-135) y1 (100) +x (100) +y (0) size (15)\nGround Relative x1 (-35) y1 (100) +x (0) +y (-100) size (15)\nGround Relative x1 (-35) y1 (0) +x (135) +y (0) size (15)\nGround Relative x1 (100) y1 (0) +x (0) +y (200) size (15)\nGround Relative x1 (100) y1 (200) +x (135) +y (0) size (15)\nLava Relative x1 (-235) y1 (295) +x (100) +y (0) size (15)\nLava Relative x1 (-135) y1 (295) +x (0) +y (-125) size (15)\nLava Relative x1 (-135) y1 (170) +x (100) +y (0) size (15)\nLava Relative x1 (-35) y1 (170) +x (0) +y (100) size (15)\nLava Relative x1 (-35) y1 (275) +x (270) +y (0) size (15)\nEndLevel\n\ndefine Last Levels\nNewLevel\nLava Relative x1 (-135) y1 (200) +x (0) +y (-200) size (15)\nLava Relative x1 (-85) y1 (295) +x (0) +y (-220) size (15)\nLava Relative x1 (-20) y1 (0) +x (0) +y (200) size (15)\nGround Relative x1 (-235) y1 (0) +x (50) +y (0) size (15)\nGround Relative x1 (-185) y1 (0) +x (0) +y (200) size (15)\nGround Relative x1 (-185) y1 (200) +x (50) +y (0) size (15)\nGround Relative x1 (-135) y1 (0) +x (115) +y (0) size (15)\nGround Relative x1 (-20) y1 (200) +x (255) +y (0) size (15)\nQuickSand Relative x1 (-85) y1 (2.5) +x (50) +y (0) size (10)\nBounce Relative x1 (-65) y1 (2.5) +x (50) +y (0) size (10)\nEndLevel\nNewLevel\nBounce Relative x1 (-235) y1 (0) +x (470) +y (0) size (15)\nGround Relative x1 (-150) y1 (2.5) +x (50) +y (0) size (10)\nGround Relative x1 (150) y1 (2.5) +x (-50) +y (0) size (10)\nEndLevel\n\n@GameRender\n\ndefine None\nset pen color to (((((round (a)) * (16777216)) + ((round (r)) * (65536))) + ((round (g)) * (256))) + (round (b)))\n\ndefine RenderLevel\nset [levelindexposition v] to (item (((level) * (2)) - (1)) of [levelindexpositions v])\nset [currentstep v] to [0]\nrepeat ((item ((level) * (2)) of [levelindexpositions v]) - (item (((level) * (2)) - (1)) of [levelindexpositions v]))\n    if <(currentStep) = [0]> then\n        pen up\n        set x to (item (levelIndexPosition) of [levels v])\n    end\n    if <(currentStep) = [1]> then\n        set y to (item (levelIndexPosition) of [levels v])\n    end\n    if <(currentStep) = [2]> then\n        set pen color to (item (levelIndexPosition) of [levels v])\n    end\n    if <(currentStep) = [3]> then\n        set pen size to (item (levelIndexPosition) of [levels v])\n        pen down\n    end\n    if <(currentStep) = [4]> then\n        set [levelrender: targetx v] to (item (levelIndexPosition) of [levels v])\n    end\n    if <(currentStep) = [5]> then\n        set [levelrender: targety v] to (item (levelIndexPosition) of [levels v])\n        go to x: (levelRender: targetX) y: (levelRender: targetY)\n        pen up\n    end\n    change [currentstep v] by (1)\n    set [currentstep v] to ((currentStep) mod (6))\n    change [levelindexposition v] by (1)\nend\n\ndefine None\ngo to x: ((playerX) - ((6) * (size))) y: ((playerY) - ((6) * (size)))\nset pen color | opacity: (255) red: (50) green: (50) blue: (50)\nset pen size to (15)\npen down\nchange x by (12)\nchange y by (12)\nchange x by (-12)\nchange y by (-12)\nset pen color | opacity: (255) red: (150) green: (150) blue: (150)\nset pen size to (12)\npen down\nchange x by (12)\nchange y by (12)\nchange x by (-12)\nchange y by (-12)\nset [eyepositionx v] to [0]\nset [eyepositiony v] to [0]\nset [eyeposstringindex v] to [0]\nrepeat (length of (eyepos))\n    change [eyeposstringindex v] by (1)\n    if <(letter (eyeposStringIndex) of (eyepos)) = [T]> then\n        change [eyepositiony v] by (3)\n    end\n    if <(letter (eyeposStringIndex) of (eyepos)) = [B]> then\n        change [eyepositiony v] by (-3)\n    end\n    if <(letter (eyeposStringIndex) of (eyepos)) = [R]> then\n        change [eyepositionx v] by (3)\n    end\n    if <(letter (eyeposStringIndex) of (eyepos)) = [L]> then\n        change [eyepositionx v] by (-3)\n    end\nend\npen up\ngo to x: (playerX) y: (playerY)\nset pen color | opacity: (255) red: (255) green: (255) blue: (255)\nset pen size to (10)\nchange x by (4)\npen down\npen up\nchange x by (-8)\npen down\npen up\nchange x by (4)\nchange x by (eyePositionX)\nchange y by (eyePositionY)\nset pen size to (5)\nset pen color | opacity: (255) red: (50) green: (50) blue: (100)\nchange x by (4)\npen down\npen up\nchange x by (-8)\npen down\npen up\n\ndefine None\nset [playerheight v] to [0]\nchange x by (speed)\nrepeat until <<not <touching color (#5a9600)?>> or <(playerHeight) = [8]>>\n    change y by (1)\n    change [playerheight v] by (1)\nend\nif <(playerHeight) = [8]> then\n    change y by (-8)\n    change x by ((playerXVelocity) * (-0.5))\n    if <<<([abs v] of (playerXVelocity) ) > [1]> and <<key (space v) pressed?> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>>> and <not <touching color (#fff0c8)?>>> then\n        if <(playerXVelocity) > [0]> then\n            set [playerxvelocity v] to [-4]\n            change x by (playerXVelocity)\n        else\n            set [playerxvelocity v] to [4]\n            change x by (playerXVelocity)\n        end\n        set [playeryvelocity v] to [13]\n        change [statistics:  jumps v] by (1)\n    else\n        set [playerxvelocity v] to ((playerXVelocity) * (-1))\n        change x by (playerXVelocity)\n        change y by ((playerYVelocity) * (-0.75))\n    end\nend\n\nwhen I receive [gameloop v]\nhide\nset [isinplay v] to [1]\nset [gravity v] to [-1]\nset [playerxvelocity v] to [0]\nset [playeryvelocity v] to [0]\nset [directionchangemultiplier v] to [-0.2]\nResetPlayerPos\nset [statistics:  jumps v] to [0]\nset [statistics: deaths v] to [0]\nset [statistics: time v] to [0]\nreset timer\nrepeat until <(level) = (((length of [levelindexpositions v]) / (2)) + (1))>\n    RenderBackground (50)\n    RenderLevel\n    CalculatePlayerCollider\n    set [eyepos v] to []\n    set [statistics: time v] to (timer)\n    if <([abs v] of (playerXVelocity) ) > [1]> then\n        if <(playerXVelocity) > [0]> then\n            set [eyepos v] to [R]\n        else\n            set [eyepos v] to [L]\n        end\n    end\n    if <([abs v] of (playerYVelocity) ) > [1]> then\n        if <(playerYVelocity) > [0]> then\n            set [eyepos v] to (join (eyepos) [T])\n        else\n            set [eyepos v] to (join (eyepos) [B])\n        end\n    end\n    RenderPlayer (1) eyepos (eyepos)\n    if <(currentSongVisible) = [1]> then\n        if <not <(currentSongOpacity) = [255]>> then\n            change [currentsongopacity v] by (2.5)\n        else\n            set [currentsongvisible v] to [0]\n        end\n    else\n        if <not <(currentSongOpacity) = [0]>> then\n            change [currentsongopacity v] by (-2.5)\n        end\n    end\n    if <not <(currentSongOpacity) = [0]>> then\n        broadcast (Music v)\n    end\n    if <<key (d v) pressed?> and <<key (e v) pressed?> and <key (v v) pressed?>>> then\n        broadcast (developerCode v) and wait\n    end\nend\nbroadcast (End v)\nset [gameloop v] to [0]\nResetPlayerPos\nset [isinplay v] to [0]\nRenderPlayer (1) eyepos []\nset [saymessage v] to [1]\nreset timer\nset [level v] to [1]\nRenderBackground (20)\nforever\n    go to x: (-240) y: (-80)\n    set pen color to (#000000)\n    pen down\n    set pen size to (175)\n    go to x: (240) y: (-80)\n    pen up\n    RenderLevel\n    CalculatePlayerCollider\n    set [eyepos v] to []\n    if <([abs v] of (playerXVelocity) ) > [1]> then\n        if <(playerXVelocity) > [0]> then\n            set [eyepos v] to [R]\n        else\n            set [eyepos v] to [L]\n        end\n    end\n    if <([abs v] of (playerYVelocity) ) > [1]> then\n        if <(playerYVelocity) > [0]> then\n            set [eyepos v] to (join (eyepos) [T])\n        else\n            set [eyepos v] to (join (eyepos) [B])\n        end\n    end\n    RenderPlayer (1) eyepos (eyepos)\n    if <(currentSongVisible) = [1]> then\n        if <not <(currentSongOpacity) = [255]>> then\n            change [currentsongopacity v] by (2.5)\n        else\n            set [currentsongvisible v] to [0]\n        end\n    else\n        if <not <(currentSongOpacity) = [0]>> then\n            change [currentsongopacity v] by (-2.5)\n        end\n    end\n    if <not <(currentSongOpacity) = [0]>> then\n        broadcast (Music v)\n    end\n    if <(timer) > [4]> then\n        set [saymessage v] to ((pick random (1) to (2)) - (1))\n        set [currentmessage v] to (pick random (1) to (length of [messages v]))\n        reset timer\n    else\n    end\n    if <(sayMessage) = [1]> then\n        set [ghost v] effect to (100)\n        show\n        say (item (currentMessage) of [messages v])\n        change x by (4)\n        change y by (4)\n    end\nend\n\ndefine CollideGround\nif <not <touching color (#5a9600)?>> then\n    set [playerfalling v] to [1]\nelse\n    repeat until <not <touching color (#5a9600)?>>\n        if <(playerYVelocity) > [0]> then\n            change y by ((playerYVelocity) * (-1))\n        else\n            change y by (1)\n            set [playerfalling v] to [0]\n        end\n    end\n    set [playeryvelocity v] to [0]\nend\n\ndefine CalculatePlayerCollider\nshow\ngo to x: (playerX) y: (playerY)\nchange [playeryvelocity v] by (gravity)\nchange y by (playerYVelocity)\nCollideGround\nif <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n    if <(item (4) of [developerfeatures v]) = [1]> then\n        if <(playerXVelocity) < [0]> then\n            change [playerxvelocity v] by ((1.25) + ((directionChangeMultiplier) * (playerXVelocity)))\n        else\n            change [playerxvelocity v] by (1.25)\n        end\n    else\n        if <(playerXVelocity) < [0]> then\n            change [playerxvelocity v] by ((0.5) + ((directionChangeMultiplier) * (playerXVelocity)))\n        else\n            change [playerxvelocity v] by (0.5)\n        end\n    end\nend\nif <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n    if <(item (4) of [developerfeatures v]) = [1]> then\n        if <(playerXVelocity) > [0]> then\n            change [playerxvelocity v] by ((-1.25) + ((directionChangeMultiplier) * (playerXVelocity)))\n        else\n            change [playerxvelocity v] by (-1.25)\n        end\n    else\n        if <(playerXVelocity) > [0]> then\n            change [playerxvelocity v] by ((-0.5) + ((directionChangeMultiplier) * (playerXVelocity)))\n        else\n            change [playerxvelocity v] by (-0.5)\n        end\n    end\nend\nif <not <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>>> then\n    set [playerxvelocity v] to ((playerXVelocity) / (1.1))\nelse\n    set [playerxvelocity v] to ((playerXVelocity) / (1.03))\nend\nif <(playerFalling) = [0]> then\n    if <<key (space v) pressed?> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n        if <not <touching color (#fff0c8)?>> then\n            if <(isInPlay) = [1]> then\n                if <(item (3) of [developerfeatures v]) = [1]> then\n                    set [playeryvelocity v] to [18.5]\n                else\n                    set [playeryvelocity v] to [14]\n                end\n                change [statistics:  jumps v] by (1)\n            else\n                set [playeryvelocity v] to [10]\n            end\n        end\n    end\nend\nif <([abs v] of (playerXVelocity) ) > [0]> then\n    Move (playerXVelocity)\nend\nif <touching color (#ff1e00)?> then\n    ResetPlayerPos\n    change [statistics: deaths v] by (1)\nend\nif <(isInPlay) = [1]> then\n    if <(x position) > [235]> then\n        ResetPlayerPos\n        change [level v] by (1)\n    end\nend\nif <(y position) < [-170]> then\n    change [statistics: deaths v] by (1)\n    ResetPlayerPos\nend\nif <touching color (#ffaf00)?> then\n    set [playeryvelocity v] to [20.5]\n    change [statistics:  jumps v] by (1)\nend\nif <touching color (#fff0c8)?> then\n    set [playeryvelocity v] to ((playerYVelocity) * (0.1))\n    set [playerxvelocity v] to ((playerXVelocity) * (0.4))\nend\nif <(item (1) of [developerfeatures v]) = [1]> then\n    if <(item (2) of [developerfeatures v]) = [1]> then\n        if <key (b v) pressed?> then\n            change [playeryvelocity v] by (1.5)\n        end\n    end\nend\nset [playerx v] to (x position)\nset [playery v] to (y position)\nhide\n\nwhen flag clicked\nhide\n\ndefine ResetPlayerPos\nset [playerx v] to [-220]\nset [playery v] to [-70]\nset [playerxvelocity v] to [0]\nset [playeryvelocity v] to [0]\nset [playerfalling v] to [0]\nset x to (playerX)\nset y to (playerY)\n\nerase all\nRenderBackground (1)\nhide\npen up\nset pen size to (150)\ngo to x: (-240) y: (-180)\nset pen color | opacity: (255) red: (0) green: (200) blue: (255)\npen down\ngo to x: (240) y: (180)\npen up\nset [level v] to [14]\nset [playerx v] to [-90]\nset [playery v] to [-97]\nRenderLevel\nRenderPlayer (1) eyepos [T]\n\nwhen I receive [start v]\nRenderBackground (255)\nRenderLevel\n\ndefine Pen Down\nset pen color | opacity: (1) red: (0) green: (0) blue: (0)\npen down\n\ndefine None\nset pen color | opacity: (opacity) red: (0) green: (0) blue: (0)\nset pen size to (180)\ngo to x: (-240) y: (90)\nchange x by (480)\nPen Down\nset pen color | opacity: (opacity) red: (0) green: (0) blue: (0)\nchange x by (-480)\npen up\nchange y by (-180)\nPen Down\nset pen color | opacity: (opacity) red: (0) green: (0) blue: (0)\nchange x by (480)\npen up\n\n@BPTE\n\ndefine None\nset [#bezier.t v] to [0]\ngo to x: (((x1) * (((1) - (#bezier.t)) * ((1) - (#bezier.t)))) + ((((x3) * (2)) * (((1) - (#bezier.t)) * (#bezier.t))) + ((x2) * ((#bezier.t) * (#bezier.t))))) y: (((y1) * (((1) - (#bezier.t)) * ((1) - (#bezier.t)))) + ((((y3) * (2)) * (((1) - (#bezier.t)) * (#bezier.t))) + ((y2) * ((#bezier.t) * (#bezier.t)))))\npen down\nrepeat (q)\n    change [#bezier.t v] by ((1) / (q))\n    set [#bezier.t2 v] to ((1) - (#bezier.t))\n    go to x: (((x1) * (((1) - (#bezier.t)) * ((1) - (#bezier.t)))) + ((((x3) * (2)) * (((1) - (#bezier.t)) * (#bezier.t))) + ((x2) * ((#bezier.t) * (#bezier.t))))) y: (((y1) * (((1) - (#bezier.t)) * ((1) - (#bezier.t)))) + ((((y3) * (2)) * (((1) - (#bezier.t)) * (#bezier.t))) + ((y2) * ((#bezier.t) * (#bezier.t)))))\nend\npen up\n\ndefine None\ngo to x: (x) y: (y)\nif <center> then\n    INTERNAL | Get text length (str) (s) (w) (h)\n    change x by (() - ((#print-text.len) / (2)))\n    change y by (() - (((h) * ((s) / (25))) / (2)))\nend\nif <wrap> then\n    INTERNAL | Split string (str) every [ ]\n    INTERNAL | Get words lengths (s) (w) (h)\nend\nset pen size to (([floor v] of (((t) * ((s) / (100))) / (2)) ) * (2))\nset [#print-text.n v] to [0]\nset [#print-text.cur-word v] to [1]\nrepeat (length of (str))\n    change [#print-text.n v] by (1)\n    PRINT | Character code ([\['concatenate:with:', \['letter:of:', \['readvariable', '#print-text.n'\], \['getparam', 'str', 'r'\]\], ''\] v] of [bpte v]) at (x position) (y position) w&h (w) (h) size (s) italics (i)\n    change x by (((2) * (((w) / (4)) * ((s) / (25)))) + (#print.len))\n    if <wrap> then\n        if <(letter (#print-text.n) of (str)) = [ ]> then\n            change [#print-text.cur-word v] by (1)\n            if <((x position) + (item (#print-text.cur-word) of [sizes v])) > (wp)> then\n                set x to (wbp)\n                change y by (() - (((h) + (4)) * ((s) / (25))))\n            end\n        end\n    end\nend\n\ndefine None\nset [#print.x-size v] to (((w) / (4)) * ((s) / (25)))\nset [#print.y-size v] to (((h) / (8)) * ((s) / (25)))\nset [#print.len v] to ((letter (1) of (c)) * (#print.x-size))\nset [#print.n v] to [3]\nrepeat until <(letter (#print.n) of (c)) = []>\n    if <(letter (#print.n) of (c)) = [L]> then\n        go to x: ((((letter ((#print.n) + (1)) of (c)) * (#print.x-size)) + (((letter ((#print.n) + (2)) of (c)) * ((i) / (2))) * ((#print.y-size) / ([abs v] of (#print.y-size) )))) + (x)) y: (((letter ((#print.n) + (2)) of (c)) * (#print.y-size)) + (y))\n        pen down\n        go to x: ((((letter ((#print.n) + (3)) of (c)) * (#print.x-size)) + (((letter ((#print.n) + (4)) of (c)) * ((i) / (2))) * ((#print.y-size) / ([abs v] of (#print.y-size) )))) + (x)) y: (((letter ((#print.n) + (4)) of (c)) * (#print.y-size)) + (y))\n        pen up\n        change [#print.n v] by (5)\n    else\n        if <(letter (#print.n) of (c)) = [B]> then\n            DRAW | Bezier Curve (Quadratic) | Path: ((((letter ((#print.n) + (1)) of (c)) * (#print.x-size)) + (((letter ((#print.n) + (2)) of (c)) * ((i) / (2))) * ((#print.y-size) / ([abs v] of (#print.y-size) )))) + (x)) (((letter ((#print.n) + (2)) of (c)) * (#print.y-size)) + (y)) ((((letter ((#print.n) + (5)) of (c)) * (#print.x-size)) + (((letter ((#print.n) + (6)) of (c)) * ((i) / (2))) * ((#print.y-size) / ([abs v] of (#print.y-size) )))) + (x)) (((letter ((#print.n) + (6)) of (c)) * (#print.y-size)) + (y)) Controling point: ((((letter ((#print.n) + (3)) of (c)) * (#print.x-size)) + (((letter ((#print.n) + (4)) of (c)) * ((i) / (2))) * ((#print.y-size) / ([abs v] of (#print.y-size) )))) + (x)) (((letter ((#print.n) + (4)) of (c)) * (#print.y-size)) + (y)) Quality: ((round ((3) * ((s) / (100)))) + (3))\n            change [#print.n v] by (7)\n        else\n            set [#print.y-size v] to ((#print.y-size) * (-1))\n            change [#print.n v] by (1)\n        end\n    end\nend\ngo to x: (x) y: (y)\n\ndefine None\nset [#print-text.len v] to [0]\nset [#text-len.n v] to [0]\nset [#text-len.width v] to (((w) / (4)) * ((s) / (25)))\nrepeat (length of (str))\n    change [#text-len.n v] by (1)\n    change [#print-text.len v] by ((letter (1) of ([\['concatenate:with:', \['letter:of:', \['readvariable', '#text-len.n'\], \['getparam', 'str', 'r'\]\], ''\] v] of [bpte v])) * (#text-len.width))\nend\nchange [#print-text.len v] by (((length of (str)) - (1)) * ((2) * (((w) / (4)) * ((s) / (25)))))\n\ndefine None\ngo to x: (x) y: (y)\nif <center> then\n    INTERNAL | Get text length (str) (s) (w) (h)\n    change x by (() - ((#print-text.len) / (2)))\n    change y by (() - (((h) * ((s) / (25))) / (2)))\nend\nset pen size to (([floor v] of (((t) * ((s) / (100))) / (2)) ) * (2))\nset [#print-text.n v] to [0]\nrepeat (length of (str))\n    change [#print-text.n v] by (1)\n    PRINT | Character code ([\['concatenate:with:', \['letter:of:', \['readvariable', '#print-text.n'\], \['getparam', 'str', 'r'\]\], ''\] v] of [bpte v]) at (x position) (y position) w&h (w) (h) size (s) italics (i)\n    change x by (((2) * (((w) / (4)) * ((s) / (25)))) + (#print.len))\nend\n\ndefine None\nset [#word-lens.n v] to [0]\ndelete (all) of [sizes v]\nrepeat (length of [_split v])\n    change [#word-lens.n v] by (1)\n    INTERNAL | Get text length (item (#word-lens.n) of [_split v]) (s) (w) (h)\n    add (#print-text.len) to [sizes v]\nend\n\ndefine DATA | Setup font %m.list\nset [_index1 v] to [0]\nrepeat (length of [\['concatenate:with:', \['getparam', 'list', 'r'\], ''\] v])\n    change [_index1 v] by (1)\n    INTERNAL | Split string (item (_index1) of [\['concatenate:with:', \['getparam', 'list', 'r'\], ''\] v]) every [:]\n    if <(item (1) of [_split v]) = [..]> then\n        set [\['concatenate:with:', ':', ''\] v] to (item (2) of [_split v])\n    else\n        set [\['concatenate:with:', \['getline:oflist:', 1, '_split'\], ''\] v] to (item (2) of [_split v])\n    end\nend\n\ndefine INTERNAL | Split string [] every []\nset [_index2 v] to [0]\ndelete (all) of [chars v]\ndelete (all) of [_split v]\nrepeat (length of (str))\n    change [_index2 v] by (1)\n    if <(letter (_index2) of (str)) = (char)> then\n        add (chars) to [_split v]\n        delete (all) of [chars v]\n    else\n        add (letter (_index2) of (str)) to [chars v]\n    end\nend\nif <(length of [chars v]) > [0]> then\n    add (chars) to [_split v]\nend\ndelete (all) of [chars v]\n\ndefine None\nset pen color to (((((round (a)) * (16777216)) + ((round (r)) * (65536))) + ((round (g)) * (256))) + (round (b)))\n\nwhen flag clicked\nhide\n\nwhen I receive [music v]\nif <(canDoMusic) = [1]> then\n    set pen color | opacity: (currentSongOpacity) red: (255) green: (255) blue: (255)\n    PRINT | Text (currentSong) at (-230) (-160) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (4) Centered? \nelse\nend\n\nwhen I receive [end v]\nwait (2) seconds\nset [candomusic v] to [0]\nrepeat (25)\n    pen up\n    set pen color | opacity: (25) red: (255) green: (60) blue: (30)\n    set pen size to (20)\n    go to x: (-230) y: (160)\n    pen down\n    go to x: (50) y: (160)\n    pen up\n    set pen color | opacity: (25) red: (255) green: (200) blue: (30)\n    go to x: (-230) y: (130)\n    pen down\n    go to x: (100) y: (130)\n    pen up\n    set pen color | opacity: (25) red: (0) green: (150) blue: (255)\n    go to x: (-230) y: (100)\n    pen down\n    go to x: (150) y: (100)\n    pen up\n    set pen color | opacity: (25) red: (0) green: (200) blue: (255)\n    go to x: (-230) y: (70)\n    pen down\n    go to x: (150) y: (70)\n    pen up\n    set pen color | opacity: (25) red: (0) green: (200) blue: (255)\n    go to x: (-230) y: (40)\n    pen down\n    go to x: (150) y: (40)\nend\npen up\nset pen color | opacity: (255) red: (1) green: (1) blue: (1)\nPRINT (Slow) | Text (join [Your deaths: ] (Statistics: Deaths)) at (-230) (150) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (7) Centered?  Wrap?  Wrapping point: (230) Wrap back point: (-230)\nPRINT (Slow) | Text (join [Your jumps: ] (Statistics:  Jumps)) at (-230) (120) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (7) Centered?  Wrap?  Wrapping point: (230) Wrap back point: (-230)\nPRINT (Slow) | Text (join [Your time: ] (Statistics: Time)) at (-230) (90) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (7) Centered?  Wrap?  Wrapping point: (230) Wrap back point: (-230)\nPRINT (Slow) | Text (join [World best time: ] (☁ worldBestTime)) at (-230) (60) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (7) Centered?  Wrap?  Wrapping point: (230) Wrap back point: (-230)\nbroadcast (GetBestPlayer v) and wait\nPRINT (Slow) | Text (join [Best Player: ] (bestPlayerName)) at (-230) (30) | Size (\%): (50) Width: (4) Height: (8) Italics: (0) Thickness: (7) Centered?  Wrap?  Wrapping point: (230) Wrap back point: (-230)\npen up\nset [candomusic v] to [1]\n\nwhen I receive [start v]\npen up\nset [candomusic v] to [1]\nwait (0.05) seconds\nset pen color | opacity: (255) red: (100) green: (0) blue: (0)\nPRINT | Text [Speed] at (0) (100) | Size (\%): (200) Width: (4) Height: (8) Italics: (3) Thickness: (10) Centered? <[] = []>\nset pen color | opacity: (255) red: (255) green: (100) blue: (0)\nPRINT (Slow) | Text [Speed] at (0) (100) | Size (\%): (200) Width: (4) Height: (8) Italics: (3) Thickness: (4) Centered? <[] = []> Wrap?  Wrapping point: (230) Wrap back point: (-230)\nwait (1) seconds\nset pen color | opacity: (255) red: (100) green: (0) blue: (0)\nPRINT (Slow) | Text [Platformer] at (0) (-20) | Size (\%): (150) Width: (4) Height: (8) Italics: (3) Thickness: (10) Centered? <[] = []> Wrap?  Wrapping point: (230) Wrap back point: (-230)\nset pen color | opacity: (255) red: (255) green: (150) blue: (0)\nPRINT (Slow) | Text [Platformer] at (0) (-20) | Size (\%): (150) Width: (4) Height: (8) Italics: (3) Thickness: (4) Centered? <[] = []> Wrap?  Wrapping point: (230) Wrap back point: (-230)\nset pen size to (120)\nset pen color to (#000000)\ngo to x: (-240) y: (100)\nwait (1) seconds\npen down\nrepeat (24)\n    change x by (20)\nend\npen up\ngo to x: (-240) y: (-20)\npen down\nrepeat (24)\n    change x by (20)\nend\npen up\ngo to x: (-240) y: (-120)\n\n@Main\n\ndefine set pen color | opacity: (a) red: (r) green: (g) blue: (b)\nset pen color to (((((round (a)) * (16777216)) + ((round (r)) * (65536))) + ((round (g)) * (256))) + (round (b)))\n\nwhen flag clicked\nhide\nset [ghost v] effect to (90)\ngo to x: (0) y: (0)\nwait (0.1) seconds\nset [fade v] to [0]\nset [ismouseonplay v] to [0]\nset [gameloop v] to [0]\nerase all\nbroadcast (start v) and wait\nset [fade v] to [1]\nbroadcast (fade v)\nrepeat until <(GameLoop) = [1]>\n    if <(Fade) = [1]> then\n        go to x: (0) y: (0)\n        show\n        stamp\n        hide\n    end\n    Draw Play Button\n    Draw Logo Fast (190) (160) scaleFactor (0.5)\n    if <<<[-45] < (mouse y)> and <(mouse y) < [65]>> and <<[-55] < (mouse x)> and <(mouse x) < [55]>>> then\n        set [ismouseonplay v] to [1]\n    else\n        set [ismouseonplay v] to [0]\n    end\n    if <<mouse down?> and <[1] = (isMouseOnPlay)>> then\n        set [gameloop v] to [1]\n    end\n    if <<key (d v) pressed?> and <<key (e v) pressed?> and <key (v v) pressed?>>> then\n        broadcast (developercode v) and wait\n    end\nend\nrepeat (25)\n    go to x: (0) y: (0)\n    show\n    stamp\n    hide\nend\nbroadcast (gameloop v)\nset [ismouseonplay v] to [0]\nset [fade v] to [0]\n\ndefine Draw Play Button\npen up\ngo to x: (0) y: (60)\nif <[1] = (isMouseOnPlay)> then\n    change y by (10)\n    change x by (10)\nend\nchange x by ((-50) - ((20) * (isMouseOnPlay)))\nset pen size to (28)\nset pen color | opacity: (50) red: (45) green: (75) blue: (0)\npen down\nchange y by ((-100) - ((20) * (isMouseOnPlay)))\nChange x: ((100) - ((-20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\nChange x: ((-100) - ((20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\npen up\ngo to x: (0) y: (60)\nif <[1] = (isMouseOnPlay)> then\n    change y by (10)\n    change x by (10)\nend\nchange x by ((-50) - ((20) * (isMouseOnPlay)))\nset pen size to (20)\nset pen color | opacity: (255) red: (90) green: (150) blue: (0)\npen down\nchange y by ((-100) - ((20) * (isMouseOnPlay)))\nChange x: ((100) - ((-20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\nChange x: ((-100) - ((20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\npen up\ngo to x: (0) y: (60)\nif <[1] = (isMouseOnPlay)> then\n    change y by (10)\n    change x by (10)\nend\nchange x by ((-50) - ((20) * (isMouseOnPlay)))\nset pen size to (10)\nset pen color | opacity: (255) red: (120) green: (200) blue: (0)\npen down\nchange y by ((-100) - ((20) * (isMouseOnPlay)))\nChange x: ((100) - ((-20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\nChange x: ((-100) - ((20) * (isMouseOnPlay))) y: (((50) - ((-20) * (isMouseOnPlay))) + ((-10) * (isMouseOnPlay)))\npen up\n\nwhen I receive [end v]\nset [ghost v] effect to (95)\nif <(canMakeRecord) = [1]> then\n    if <(Statistics: Time) < (☁ worldBestTime)> then\n        set [☁ worldbesttime v] to (Statistics: Time)\n        broadcast (setbestplayer v) and wait\n    end\nend\nrepeat (50)\n    go to x: (0) y: (0)\n    show\n    stamp\n    hide\n    change [ghost v] effect by (-0.1)\nend\nDraw Logo (190) (160) scaleFactor (0.5)\n\ndefine Draw Logo (x1) (y1) scaleFactor (scalefactor)\npen up\nset pen size to ((50) * (scalefactor))\nset pen color | opacity: (255) red: (0) green: (150) blue: (255)\ngo to x: (x1) y: (y1)\npen down\nrepeat (10)\n    change x by (((50) / (10)) * (scalefactor))\nend\nrepeat (10)\n    change y by (((-50) / (10)) * (scalefactor))\nend\nrepeat (10)\n    change x by (((-50) / (10)) * (scalefactor))\nend\nrepeat (10)\n    change y by (((50) / (10)) * (scalefactor))\nend\npen up\ngo to x: (x1) y: (y1)\nset pen size to ((20) * (scalefactor))\nset pen color | opacity: (255) red: (255) green: (255) blue: (255)\npen down\nrepeat (10)\n    change y by (((-50) / (10)) * (scalefactor))\nend\nrepeat (10)\n    change x by (((50) / (10)) * (scalefactor))\nend\npen up\nset pen size to ((8) * (scalefactor))\ngo to x: (((40) * (scalefactor)) + (x1)) y: (y1)\npen down\nrepeat (10)\n    change x by (((15) / (10)) * (scalefactor))\nend\nrepeat (10)\n    change y by (((-15) / (10)) * (scalefactor))\nend\npen up\n\ndefine Draw Logo Fast (x1) (y1) scaleFactor (scalefactor)\npen up\nset pen size to ((50) * (scalefactor))\nset pen color | opacity: (255) red: (0) green: (150) blue: (255)\ngo to x: (x1) y: (y1)\npen down\nchange x by ((50) * (scalefactor))\nchange y by ((-50) * (scalefactor))\nchange x by ((-50) * (scalefactor))\nchange y by ((50) * (scalefactor))\npen up\ngo to x: (x1) y: (y1)\nset pen size to ((20) * (scalefactor))\nset pen color | opacity: (255) red: (255) green: (255) blue: (255)\npen down\nchange y by ((-50) * (scalefactor))\nchange x by ((50) * (scalefactor))\npen up\nset pen size to ((8) * (scalefactor))\ngo to x: (((40) * (scalefactor)) + (x1)) y: (y1)\npen down\nchange x by ((15) * (scalefactor))\nchange y by ((-15) * (scalefactor))\npen up\n\nDraw Logo (-220) (160) scaleFactor (0.5)\n\nset [☁ worldbesttime v] to [1000]\nset [☁ best player v] to []\n\ndefine Change x: (x) y: (y)\ngo to x: ((x position) + (x)) y: ((y position) + (y))\n\n@Music\n\nwhen flag clicked\nset [currentsongvisible v] to [0]\nhide variable [currentsong v]\nif <(playerBefore) = [0]> then\n    set [playerbefore v] to [1]\n    play sound [City Lights v] until done\n    play sound [Vexento - Spark \(320  kbps\).mp3 v] until done\n    forever\n        set [currentsongvisible v] to [1]\n        set [currentsongopacity v] to [0]\n        set [currentsong# v] to (pick random (1) to (7))\n        set [currentsong v] to (item (currentSong#) of [songs v])\n        play sound (currentSong#) until done\n    end\nelse\n    forever\n        set [currentsongvisible v] to [1]\n        set [currentsongopacity v] to [0]\n        set [currentsong# v] to (pick random (1) to (7))\n        set [currentsong v] to (item (currentSong#) of [songs v])\n        play sound (currentSong#) until done\n    end\nend\n\nset [playerbefore v] to [0]\n\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset size to (100) %\nhide\n\nshow\n\n@DeveloperMode\n\nwhen flag clicked\nset [canmakerecord v] to [1]\ndelete (all) of [developerfeatures v]\nadd [0] to [developerfeatures v]\nadd [0] to [developerfeatures v]\nadd [0] to [developerfeatures v]\nadd [0] to [developerfeatures v]\n\ndefine ParseDeveloperMessage []\nset [featurestate v] to (letter (1) of (message))\nset [featuremessage v] to []\nset [counterinkey v] to [4]\nrepeat ((length of (message)) - (4))\n    change [counterinkey v] by (1)\n    set [featuremessage v] to (join (featureMessage) (letter (counterInKey) of (message)))\nend\nset [currentdevelopercode v] to [0]\nset [counter v] to [1]\nrepeat (length of (featureMessage))\n    set [foundkey v] to [0]\n    set [counterinkey v] to [0]\n    repeat until <<(counterInKey) > (length of [keys v])> or <(foundKey) = [1]>>\n        change [counterinkey v] by (1)\n        if <(item (counterInKey) of [keys v]) = (letter (counter) of (featureMessage))> then\n            set [foundkey v] to [1]\n            change [currentdevelopercode v] by (counterInKey)\n        end\n    end\n    change [counter v] by (1)\nend\nif <[developerkeycodes v] contains (currentDeveloperCode)?> then\n    set [counter v] to [0]\n    repeat (length of [developerkeycodes v])\n        change [counter v] by (1)\n        if <(item (counter) of [developerkeycodes v]) = (currentDeveloperCode)> then\n            replace item (counter) of [developerfeatures v] with (featureState)\n            set [canmakerecord v] to [0]\n        end\n    end\nend\n\ndelete (all) of [developerkeycodes v]\n\nset [featuremessage v] to [NONE]\nset [currentdevelopercode v] to [0]\nset [counter v] to [1]\nrepeat (length of (featureMessage))\n    set [foundkey v] to [0]\n    set [counterinkey v] to [0]\n    repeat until <<(counterInKey) > (length of [keys v])> or <(foundKey) = [1]>>\n        change [counterinkey v] by (1)\n        if <(item (counterInKey) of [keys v]) = (letter (counter) of (featureMessage))> then\n            set [foundkey v] to [1]\n            change [currentdevelopercode v] by (counterInKey)\n        end\n    end\n    change [counter v] by (1)\nend\nadd (currentDeveloperCode) to [developermethodkeycodes v]\n\ndefine methodParse []\nset [featuremessage v] to []\nset [counterinkey v] to [0]\nrepeat (length of (message))\n    change [counterinkey v] by (1)\n    set [featuremessage v] to (join (featureMessage) (letter (counterInKey) of (message)))\nend\nset [currentdevelopercode v] to [0]\nset [counter v] to [1]\nrepeat (length of (featureMessage))\n    set [foundkey v] to [0]\n    set [counterinkey v] to [0]\n    repeat until <<(counterInKey) > (length of [keys v])> or <(foundKey) = [1]>>\n        change [counterinkey v] by (1)\n        if <(item (counterInKey) of [keys v]) = (letter (counter) of (featureMessage))> then\n            set [foundkey v] to [1]\n            change [currentdevelopercode v] by (counterInKey)\n        end\n    end\n    change [counter v] by (1)\nend\nif <[developermethodkeycodes v] contains (currentDeveloperCode)?> then\n    set [counter v] to [0]\n    repeat (length of [developermethodkeycodes v])\n        change [counter v] by (1)\n        if <(item (counter) of [developermethodkeycodes v]) = (currentDeveloperCode)> then\n            if <(counter) = [1]> then\n                change [level v] by (1)\n            end\n            if <(counter) = [2]> then\n                change [level v] by (-1)\n            end\n        end\n    end\nend\n\nwhen I receive [developercode v]\ngo to x: ((playerX) + (20)) y: ((playerY) + (20))\nask [Developer Code? ... ] and wait\nset [currentdevelopercode v] to []\nif <(letter (1) of (answer)) = [1]> then\n    ParseDeveloperMessage (answer)\nelse\n    if <(letter (1) of (answer)) = [0]> then\n        ParseDeveloperMessage (answer)\n    else\n        if <(item (1) of [developerfeatures v]) = [1]> then\n            methodParse (answer)\n        end\n    end\nend\n\n@NameSaver\n\ndefine Save Name | name: []\nConvert to numbers | string: (name)\nset [☁ best player v] to (numbersOfString)\n\ndefine None\nset [stringofnumbers v] to []\nset [indexinstring v] to [1]\nrepeat ((length of (numbersofstring)) / (2))\n    set [foundnumberinalphabet v] to [0]\n    set [indexinalphabet v] to [1]\n    repeat until <<(indexInAlphabet) > (length of [alphabet v])> or <(foundNumberInAlphabet) = [1]>>\n        if <(round (join (letter (((indexInString) * (2)) - (1)) of (numbersofstring)) (letter ((indexInString) * (2)) of (numbersofstring)))) = (indexInAlphabet)> then\n            set [foundnumberinalphabet v] to [1]\n        else\n            change [indexinalphabet v] by (1)\n        end\n    end\n    if <(foundNumberInAlphabet) = [1]> then\n        set [stringofnumbers v] to (join (stringOfNumbers) (item (indexInAlphabet) of [alphabet v]))\n    end\n    change [indexinstring v] by (1)\nend\n\ndefine Check case | char: []\nset [indexincapitals v] to [1]\nset [iscapital v] to [0]\nset [currentcasecheckstring v] to []\nrepeat (length of [capitals v])\n    if <(item (indexInCapitals) of [capitals v]) = (char)> then\n        set [currentcasecheckstring v] to (join (currentCaseCheckString) (char))\n    else\n        set [currentcasecheckstring v] to (join (currentCaseCheckString) (item (indexInCapitals) of [capitals v]))\n    end\n    change [indexincapitals v] by (1)\nend\nswitch costume to (notcapital v)\nswitch costume to (currentCaseCheckString)\nif <(costume [number v]) = [1]> then\n    set [iscapital v] to [1]\nelse\n    set [iscapital v] to [0]\nend\n\ndefine Convert to numbers | string: []\nset [numbersofstring v] to []\nset [currentnumber v] to []\nset [indexinstring v] to [1]\nrepeat (length of (string))\n    set [foundnumberinalphabet v] to [0]\n    set [indexinalphabet v] to [1]\n    repeat until <<(indexInAlphabet) > (length of [alphabet v])> or <(foundNumberInAlphabet) = [1]>>\n        if <(item (indexInAlphabet) of [alphabet v]) = (letter (indexInString) of (string))> then\n            set [foundnumberinalphabet v] to [1]\n        else\n            change [indexinalphabet v] by (1)\n        end\n    end\n    if <(foundNumberInAlphabet) = [1]> then\n        Check case | char: (letter (indexInString) of (string))\n        switch costume to (abcdefghijklmnopqrstuvwxyz v)\n        if <<(isCapital) = [1]> and <not <[numbers v] contains (letter (indexInString) of (string))?>>> then\n            change [indexinalphabet v] by (26)\n        end\n        set [currentnumber v] to (indexInAlphabet)\n        if <(length of (currentNumber)) = [1]> then\n            set [currentnumber v] to (join [0] (indexInAlphabet))\n        else\n            set [currentnumber v] to (indexInAlphabet)\n        end\n        set [numbersofstring v] to (join (numbersOfString) (currentNumber))\n    end\n    change [indexinstring v] by (1)\nend\n\ndefine None\nConvert to String | numbers: (numbersofstring)\n\nwhen I receive [setbestplayer v]\nSave Name | name: (username)\nswitch costume to (notcapital v)\n\nwhen I receive [getbestplayer v]\nGet Name | numbers: (☁ Best Player)\nset [bestplayername v] to (stringOfNumbers)\nswitch costume to (notcapital v)\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (notcapital v)\nhide\n\n
English & German controls: (Deutsch ↓)\n\n[Space | W | Up Arrow] - ▲ (Jump)\n[ D | Right Arrow]          - ► (Move Right)\n[A | Left Arrow]              - ◄ (Move left)\n[Jump + Move Right]     - ▲► (Wall Jump)\n\nDeutsch:\n\n[Leertaste | W | Aufwärtspfeil] - ▲ (Springen)\n[D | Rechter Pfeil]                    - ► (Rechts bewegen)\n[A | Linker Pfeil]                       - ◄ (Links bewegen)\n[Springen + Rechts Bewegen)  - ▲► ( "Wall Jump")\n\nDid you know, you can create your own levels? It's really easy, just click on the "Custom Levels" Sprite and voila, functions to create your own levels\n\nEnjoy 