Puzzle platformer (part 2)

Instructions: -arrow keys\n-all levels are possible\n-Part 1: https://scratch.mit.edu/projects/634678073/\n-hey guys!! You liked part 1 so much here is part 2! \n-200 likes for part 3!\n-I decided to release this early because: 1 I made it and I didn't wanna wait to release it xD and 2 I think 100 hearts and 1000 views is good enough for a part 2 like... 1000 views!?!?!??!?!?!?!?\n-this once again took me about 5 hours of work so I would really appreciate it if you heart and star!

@Stage\n\nwhen I receive [slowly stealing the code v]\nnext backdrop\n\nwhen flag clicked\nswitch backdrop to (backdrop3 v)\n\nwhen I receive [trashcan v]\nswitch backdrop to (backdrop1 v)\n\nwhen I receive [new platformer v]\nswitch backdrop to (backdrop5 v)\n\n@Player\n\nwhen I receive [death v]\nset rotation style [all around v]\nset [gravity v] to [10]\nrepeat until <(y position) < [-179]>\n    switch costume to (bye-bye v)\n    go to [front v] layer\n    turn right (10) degrees\n    change y by (Gravity)\n    change [gravity v] by (-1)\nend\nset rotation style [left-right v]\n\nwhen I receive [start v]\npoint in direction (90)\nset rotation style [left-right v]\nshow\nhide variable [y v]\nhide variable [x v]\nset [y v] to [0]\nset [x v] to [0]\nforever\n    change [y v] by (-1)\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>>> then\n        point in direction (-90)\n        change [x v] by (-1)\n    end\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        point in direction (90)\n        change [x v] by (1)\n    end\n    set [x v] to ((X) * (0.9))\n    change x by (X)\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by (1)\n    end\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by (1)\n    end\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by (1)\n    end\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by (1)\n    end\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by (-4)\n        change x by ((X) * (-1))\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            set [y v] to [17]\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    change y by (Y)\n    if <<touching (platformer v)?> or <touching (helper v)?>> then\n        change y by ((Y) - ((Y) * (2)))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> and <touching (platformer v)?>> then\n        set [y v] to [15]\n    end\n    change y by (1)\n    if <touching (spikes v)?> then\n        broadcast (Death v) and wait\n        go to x: (-217) y: (70)\n        point in direction (90)\n        set rotation style [left-right v]\n        broadcast (Reset the moving variables v)\n        clear graphic effects\n    end\n    if <(x position) > [222]> then\n        hide\n        broadcast (Next Level v) and wait\n        go to x: (-214) y: (70)\n        broadcast (Reset the moving variables v)\n        show\n        clear graphic effects\n    end\nend\n\nwhen I receive [reset the moving variables v]\nset [x v] to [0]\nset [y v] to [0]\n\nwhen flag clicked\ngo to x: (-214) y: (-85)\npoint in direction (90)\n\nwhen I receive [skip v]\nhide\ngo to x: (-214) y: (70)\nbroadcast (Next Level v)\nbroadcast (Reset the moving variables v)\nshow\n\nwhen flag clicked\nforever\n    if <<touching (bounce v)?> or <touching (bounce2 v)?>> then\n        set [y v] to [20]\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (speed2 v)?> then\n        change [x v] by (10)\n    end\n    if <<<touching (speed3 v)?> or <touching (speed4 v)?>> or <<touching (speed5 v)?> or <<touching (speed6 v)?> or <<touching (speed v)?> or <<<touching (speed8 v)?> or <<touching (speed9 v)?> or <touching (speed10 v)?>>> or <touching (speed11 v)?>>>>>> then\n        change [x v] by (-10)\n    end\n    if <touching (speed7 v)?> then\n        change [y v] by (-10)\n    end\nend\n\nwhen flag clicked\nbroadcast (Start v)\n\nwhen flag clicked\nforever\n    if <<<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> or <<key (left arrow v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>>> then\n        if <not <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            switch costume to (side v)\n        else\n            switch costume to (up-side v)\n        end\n    else\n        if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            if <<<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> or <<key (left arrow v) pressed?> or <<mouse down?> and <(x position) > (mouse x)>>>> then\n                switch costume to (up-side v)\n            else\n                switch costume to (up v)\n            end\n        else\n            if <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>> then\n                switch costume to (squueze v)\n            else\n                switch costume to (middle v)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset size to (100) %\nshow\ngo to x: (-205) y: (-54)\nforever\n    if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> and <touching (water v)?>> then\n        change [y v] by (1)\n        if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> and <not <touching (water v)?>>> then\n            set [y v] to [-1]\n        end\n    end\nend\n\nwhen I receive [next level v]\ngo to x: (-205) y: (-55)\n\nwhen flag clicked\nswitch costume to (middle v)\nforever\n    wait (0.1) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nswitch costume to (trail v)\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\nwhen flag clicked\nforever\n    if <touching (sprite2 v)?> then\n        broadcast (walls v)\n    end\nend\n\nwhen I receive [trashcan v]\ngo to x: (-72) y: (-82)\n\n@Spikes\n\nwhen flag clicked\npoint in direction (90)\nshow\nforever\n    go to x: (0) y: (0)\n    if <<(level) = [3]> or <<(level) = [7]> or <<(level) = [9]> or <(level) = [12]>>>> then\n        set y to ((([sin v] of (((timer) + (Lava)) * (300)) ) * (2)) - ((Lava) * (4)))\n    end\n    if <(level) = [8]> then\n        turn right (5) degrees\n        go to x: (0) y: (-50)\n    else\n        point in direction (90)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\nset [level v] to [1]\n\nwhen flag clicked\nforever\n    go to [back v] layer\n    go [forward v] (1) layers\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [next level v]\nchange [level v] by (1)\n\n@Platformer\n\nwhen I receive [levelübergang v]\nnext costume\nchange [level v] by (1)\n\nwhen flag clicked\nshow\nswitch costume to (costume 1 v)\nset [level v] to [1]\nforever\n    go to x: (0) y: (0)\nend\n\nwhen I receive [intro finish v]\ngo to [front v] layer\ngo [backward v] (5) layers\n\nwhen I receive [next level v]\nnext costume\nchange [level v] by (1)\n\nwhen flag clicked\ngo to [front v] layer\nwait until <(level) = [3]>\nbroadcast (The choice v)\n\nwhen I receive [red v]\nbroadcast (red teleport in process v)\n\nwhen I receive [white v]\nbroadcast (teleport in process v)\n\nwhen I receive [red finish v]\nswitch costume to (red v)\n\nwhen I receive [white finish v]\nnext costume\n\nwhen flag clicked\nwait until <(costume [name v]) = [red]>\nbroadcast (slowly stealing the code v)\n\nwhen flag clicked\nwait until <(costume [name v]) = [red3]>\nbroadcast (slowly stealing the code v)\n\nwhen flag clicked\nwait until <(costume [name v]) = [costume 7]>\nwait (2) seconds\nnext costume\nbroadcast (trashcan v)\nwait (5) seconds\nnext costume\n\nwhen flag clicked\nwait until <(costume [name v]) = [red5]>\nbroadcast (new platformer v)\n\n@Sprite1\n\nwhen I receive [the choice v]\nshow\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen this sprite clicked\nbroadcast (red v)\n\nwhen I receive [red v]\nhide\n\nwhen I receive [white v]\nhide\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [the choice v]\nshow\n\nwhen I receive [red v]\nhide\n\nwhen this sprite clicked\nbroadcast (white v)\n\nwhen I receive [white v]\nhide\n\n@Sprite3\n\nwhen flag clicked\nhide\n\nwhen I receive [teleport in process v]\nshow\ngo to [front v] layer\nset [ghost v] effect to (50)\nrepeat (5)\n    change [ghost v] effect by (-10)\n    wait (.1) seconds\nend\nbroadcast (white finish v)\nwait (2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\n    wait (.1) seconds\nend\n\n@Sprite4\n\nwhen flag clicked\nhide\n\nwhen I receive [red teleport in process v]\nshow\ngo to [front v] layer\nset [ghost v] effect to (50)\nrepeat (5)\n    change [ghost v] effect by (-10)\n    wait (.1) seconds\nend\nbroadcast (red finish v)\nwait (2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\n    wait (.1) seconds\nend\n\n@Sprite5\n\nwhen I receive [the end \(white ending\) v]\nshow\ngo to [front v] layer\nwait (9) seconds\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\n@Sprite6\n\nwhen flag clicked\nforever\n    play sound [No Money v] until done\nend\n\n@Sprite7\n\nwhen flag clicked\nforever\n    show\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    go to x: (0) y: (0)\nend\n\n