A Hard Platformer

Instructions: Use Arrow Keys.\n\nThere is a SKIP button, but you can only use it ONCE, so be careful.

@Stage\n\n@Sprite1\n\nwhen backdrop switches to [backdrop30 v]\npen down\nwait (10) seconds\npen up\nerase all\nswitch backdrop to (backdrop31 v)\n\nwhen I receive [message1 v]\nset [clircles: v] to [1]\nswitch backdrop to (backdrop2 v)\nset [level v] to [1]\ngo to x: (-223) y: (-167)\nset [yv v] to [0]\n\nwhen backdrop switches to [backdrop49 v]\nrepeat until <not <(backdrop [name v]) = [backdrop49]>>\n    if <key (3 v) pressed?> then\n        switch backdrop to (backdrop50 v)\n        change [level v] by (1)\n        go to x: (-223) y: (-167)\n        set [yv v] to [0]\n        \n    end\nend\n\nwhen backdrop switches to [backdrop46 v]\nrepeat until <not <(backdrop [name v]) = [backdrop46]>>\n    if <key (space v) pressed?> then\n        switch backdrop to (backdrop47 v)\n        change [level v] by (1)\n        go to x: (-223) y: (-167)\n        set [yv v] to [0]\n        wait until <not <key (space v) pressed?>>\n    end\nend\n\nwhen backdrop switches to [backdrop25 v]\nset [clircles: v] to [0]\nwait (4) seconds\nif <(Clircles:) = [0]> then\n    switch backdrop to (backdrop26 v)\nend\n\nwhen I receive [pause v]\nset [game v] to [0]\n\nwhen I receive [unpause v]\nset [game v] to [1]\n\nwhen flag clicked\nforever\n    if <key (r v) pressed?> then\n        start sound [pop v]\n        set [yv v] to [0]\n        go to x: (-223) y: (-167)\n        change [deaths v] by (1)\n        wait until <not <key (r v) pressed?>>\n    end\nend\n\nwhen flag clicked\nhide\nhide variable [☁ win! v]\nset pen size to (5)\nerase all\npen up\nset pen color to (#666666)\nswitch backdrop to (backdrop1 v)\nset [ghost v] effect to (0)\nset [level v] to [1]\nset [deaths v] to [0]\nset [clircles: v] to [0]\nset [volume: v] to [100]\nset [game v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nhide variable [sho v]\ngo to x: (-223) y: (-166)\npoint in direction (90)\nwait (2) seconds\nshow\nforever\n    if <(game) = [1]> then\n        change [yv v] by (-0.5)\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            change [xv v] by (0.7)\n            point in direction (90)\n        end\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            change [xv v] by (-0.7)\n            point in direction (90)\n        end\n        set [xv v] to ((Xv) * (0.9))\n        change x by (Xv)\n        if <touching color (#000008)?> then\n            change y by (1)\n            if <touching color (#000008)?> then\n                change y by (1)\n                if <touching color (#000008)?> then\n                    change y by (1)\n                    if <touching color (#000008)?> then\n                        change y by (1)\n                        if <touching color (#000008)?> then\n                            change y by (1)\n                            if <touching color (#000008)?> then\n                                change x by ((Xv) * (-1))\n                                change x by (-1)\n                                change y by (-5)\n                                change x by (1)\n                                if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                                    start sound [jump v]\n                                    if <(Xv) > [0]> then\n                                        set [xv v] to [-8]\n                                    else\n                                        set [xv v] to [8]\n                                    end\n                                    set [yv v] to [10]\n                                else\n                                    set [xv v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        change y by (Yv)\n        if <touching color (#000008)?> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\n        end\n        change y by (-1)\n        if <touching color (#000008)?> then\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                start sound [jump v]\n                set [yv v] to [10]\n            end\n        end\n        change y by (1)\n        if <touching color (#66ff76)?> then\n            start sound [next lvl v]\n            set [yv v] to [0]\n            go to x: (-223) y: (-167)\n            switch backdrop to (next backdrop v)\n            change [level v] by (1)\n        end\n        if <touching color (#0c00d4)?> then\n            start sound [jump v]\n            set [yv v] to [15]\n        end\n        if <touching color (#00ffff)?> then\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                set [yv v] to [5]\n            else\n                set [yv v] to [-1]\n            end\n        end\n        if <touching color (#ff0000)?> then\n            start sound [bxsb v]\n            repeat (10)\n                change [ghost v] effect by (10)\n            end\n            set [yv v] to [0]\n            set [xv v] to [0]\n            go to x: (-223) y: (-167)\n            set [ghost v] effect to (0)\n            change [deaths v] by (1)\n        end\n        if <(level) = [101]> then\n            set [sho v] to [The end!]\n        end\n        if <(level) < [101]> then\n            set [sho v] to (join [Level ] (join (level) [/100]))\n        end\n        if <(backdrop [name v]) = [backdrop101]> then\n            set [sho v] to [¯\_\(ツ\)_/¯]\n        end\n        if <(backdrop [name v]) = [backdrop103]> then\n            set [sho v] to [♪~ ᕕ\(ᐛ\)ᕗ]\n        end\n    end\nend\n\nwhen backdrop switches to [backdrop102 v]\nchange [☁ win! v] by (1)\n\n@Sprite6\n\nwhen flag clicked\ngo to x: (-240) y: (0)\nhide\n\nwhen backdrop switches to [backdrop34 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop18 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop34]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\nwhen backdrop switches to [backdrop56 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop38 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop9 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop98 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop99]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\nwhen backdrop switches to [backdrop99 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop85 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop89]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\nwhen backdrop switches to [backdrop8 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop37]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\nwhen backdrop switches to [backdrop55 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop56]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\nwhen backdrop switches to [backdrop37 v]\nshow\nrepeat until <(backdrop [name v]) = [backdrop38]>\n    repeat until <(x position) > [119]>\n        wait (0.125) seconds\n        change x by (7.5)\n    end\n    go to x: (-240) y: (0)\nend\n\n@Sprite8\n\nwhen flag clicked\nshow\nwait (2) seconds\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [ComputerVirus v] until done\nend\n\n@Sprite2\n\nwhen this sprite clicked\nnext backdrop\nhide\n\nwhen flag clicked\nhide\nwait (3) seconds\nshow\n\n