Flashlight | a Platformer

Instructions: Instructions:\n[⬅]  [⬆]  [➡]   Arrow keys to move\n\n[⬇] Down arrow to crouch\n\n[R] to reset\n\n[⬆] Up arrow while touching the words "bouncy" to jump high\n~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~\nGet to the white cat for the next level\n~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~\nVersions\nDark version: You can see the white cat but not the level\nLight version: You can see everything but the white cat\n~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~•~\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nIt is not the end until you see some purple letters that literally say "END" and the white cat has disappeared

@Stage\n\n@light\n\nwhen I receive [start v]\nshow variable [level v]\nshow\nforever\n    go to (cat v)\nend\n\nwhen flag clicked\nhide variable [level v]\n\nwhen flag clicked\nhide\n\n@cat\n\nwhen flag clicked\ngo to [front v] layer\ngo [backward v] (2) layers\n\nwhen I receive [dark v]\nshow\nswitch backdrop to (dark v)\nbroadcast (start v)\n\nwhen I receive [light v]\nshow\nswitch backdrop to (light v)\nbroadcast (start v)\n\nwhen I receive [start v]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\ngo to x: (-214) y: (-100)\nforever\n    if <key (right arrow v) pressed?> then\n        change [x velocity v] by (1)\n    end\n    if <key (left arrow v) pressed?> then\n        change [x velocity v] by (-1)\n    end\n    set [x velocity v] to ((x velocity) * (0.9))\n    change x by (x velocity)\n    if <touching (level v)?> then\n        change y by (1)\n        if <touching (level v)?> then\n            change y by (1)\n            if <touching (level v)?> then\n                change y by (1)\n                if <touching (level v)?> then\n                    change y by (1)\n                    if <touching (level v)?> then\n                        change y by (1)\n                        if <touching (level v)?> then\n                            change x by ((x velocity) * (-1))\n                            change y by (-5)\n                            if <key (up arrow v) pressed?> then\n                                if <(x velocity) > [0]> then\n                                    set [x velocity v] to [-5]\n                                else\n                                    set [x velocity v] to [5]\n                                end\n                                set [y velocity v] to [10]\n                            else\n                                set [x velocity v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [y velocity v] by (-1)\n    change y by (y velocity)\n    if <touching (level v)?> then\n        change y by ((y velocity) * (-1))\n        set [y velocity v] to [0]\n    end\n    change y by (-1)\n    if <touching (level v)?> then\n        if <key (up arrow v) pressed?> then\n            change [y velocity v] by (15)\n        end\n    end\n    change y by (1)\n    if <touching (white cat v)?> then\n        change [level v] by (1)\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n        go to x: (-214) y: (-100)\n    end\n    if <(y position) < [-171]> then\n        set [x velocity v] to [0]\n        set [y velocity v] to [0]\n        go to x: (-214) y: (-100)\n    end\n    if <touching (bouncy v)?> then\n        if <key (up arrow v) pressed?> then\n            set [y velocity v] to [18]\n        end\n    end\n    if <touching (badd v)?> then\n        go to x: (-214) y: (-100)\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (down arrow v) pressed?> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\nwhen [r v] key pressed\nset [x velocity v] to [0]\nset [y velocity v] to [0]\ngo to x: (-214) y: (-100)\n\nwhen flag clicked\nhide\nswitch backdrop to (title page v)\n\n@level\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\nend\n\nwhen I receive [light v]\nshow\ngo to x: (0) y: (0)\nset [level v] to [1]\nforever\n    switch costume to (level)\nend\n\nwhen I receive [dark v]\nshow\ngo to x: (0) y: (0)\nset [level v] to [1]\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nhide\n\n@white cat\n\nwhen flag clicked\ngo to [front v] layer\ngo [backward v] (1) layers\ngo to x: (187) y: (-140)\n\nwhen I receive [start v]\ngo to x: (187) y: (-140)\nshow\nforever\n    if <(level) = [1]> then\n        show\n        go to x: (187) y: (-140)\n    end\n    if <(level) = [2]> then\n        show\n        go to x: (187) y: (-140)\n    end\n    if <(level) = [3]> then\n        show\n        go to x: (105) y: (-140)\n    end\n    if <(level) = [4]> then\n        show\n        go to x: (187) y: (-140)\n    end\n    if <(level) = [5]> then\n        show\n        go to x: (116) y: (97)\n    end\n    if <(level) = [6]> then\n        show\n        go to x: (-116) y: (97)\n    end\n    if <(level) = [7]> then\n        show\n        go to x: (1) y: (102)\n    end\n    if <(level) = [8]> then\n        show\n        go to x: (207) y: (-93)\n    end\n    if <(level) = [9]> then\n        show\n        go to x: (207) y: (-70)\n    end\n    if <(level) = [10]> then\n        show\n        go to x: (-200) y: (65)\n    end\n    if <(level) = [11]> then\n        show\n        go to x: (218) y: (-140)\n    end\n    if <(level) = [12]> then\n        show\n        go to x: (218) y: (-140)\n    end\n    if <(level) = [13]> then\n        hide\n    end\nend\n\nwhen flag clicked\nhide\n\n@badd\n\nwhen flag clicked\nhide\n\n@dark version button\n\nwhen this sprite clicked\nbroadcast (dark v)\nbroadcast (hide v)\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen flag clicked\nset size to (50) %\ngo to x: (-104) y: (-52)\nshow\n\n@light version button\n\nwhen this sprite clicked\nbroadcast (light v)\nbroadcast (hide v)\nhide\n\nwhen flag clicked\ngo to x: (102) y: (-51)\nset size to (50) %\nshow\n\nwhen I receive [hide v]\nhide\n\n@thumbnail\n\nwhen flag clicked\nforever\n    set [ghost v] effect to (100)\n    go to x: (0) y: (0)\n    show\n    go to [front v] layer\n    set size to (100) %\nend\n\n@bouncy\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\nend\n\nwhen I receive [start v]\nshow\ngo to x: (0) y: (0)\nforever\n    switch costume to (level)\nend\n\nwhen flag clicked\nhide\n\n