Summer (A platformer with levels)

Instructions: Use Arrow Keys for Computer\nTouch to move for mobile\nWASD dosen't work\nNo skip button\nMade for Scratch Studio (Seasons)\nAll levels are possible (Including the impossible level)\nYou can wall jump\nAvoid crabs, shark infested water, and quicksand\nLook out for unknown danger\n\n

@Stage\n\n@Orange Blob\n\ndefine Run block\nRun Engine\n\nwhen flag clicked\nset [y spawn v] to [-80]\nset [x spawn v] to [-218]\ngo to x: (X Spawn) y: (Y Spawn)\nswitch costume to (player v)\nswitch backdrop to (gamebackdrop v)\nshow\nset size to (50) %\nset [x v] to [0]\nset [y v] to [0]\nforever\n    Run block\nend\n\ndefine Run Engine\nchange [y v] by (-0.5)\nif <<key (left arrow v) pressed?> or <<(x position) > (mouse x)> and <mouse down?>>> then\n    change [x v] by (-0.9)\n    switch costume to (player 2 v)\nend\nif <<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> then\n    change [x v] by (0.9)\n    switch costume to (player 1 v)\nend\nset [x v] to ((x) * (0.9))\nchange x by (x)\nif <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n    change y by (1)\n    if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n        change y by (1)\n        if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n            change y by (1)\n            if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                change y by (1)\n                if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                    change y by (1)\n                    if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                        change y by (1)\n                        if <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n                            change y by (-6)\n                            change x by ((x) * (-1))\n                            if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n                                set [y v] to [9]\n                                if <(x) > [0]> then\n                                    set [x v] to [-10]\n                                else\n                                    set [x v] to [10]\n                                end\n                            else\n                                set [x v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (y)\nif <<touching (ground v)?> or <touching color (#00ff2c)?>> then\n    change y by ((y) * (-1))\n    set [y v] to [0]\nend\nchange y by (-0.5)\nif <<<<touching (ground v)?> or <touching color (#00ff2c)?>> and <key (up arrow v) pressed?>> or <<<touching (ground v)?> or <touching color (#00ff2c)?>> and <<(mouse y) > (y position)> and <mouse down?>>>> then\n    set [y v] to [9.5]\nend\nchange y by (0.5)\nif <touching (spikes v)?> then\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    go to x: (X Spawn) y: (Y Spawn)\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    set [x v] to [0]\n    set [y v] to [0]\nend\nif <(x position) > [233]> then\n    go to x: (X Spawn) y: (Y Spawn)\n    broadcast (NextLevel v)\n    set [x v] to [0]\n    set [y v] to [0]\nend\n\nwhen flag clicked\nswitch backdrop to (gamebackdrop v)\n\n@Ground\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [Costume3]> then\n        broadcast (Spikes Show v)\n    end\nend\n\n@Music\n\nwhen flag clicked\nforever\n    play sound [Vexento - Pixel Party v] until done\nend\n\n@Spikes\n\nwhen backdrop switches to [gamebackdrop v]\nhide\nswitch costume to (costume1 v)\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen I receive [spikes show v]\nshow\n\n@costume1 (8)\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    go to x: (0) y: (5)\n    go to [front v] layer\nend\n\n