[Entry] Jonny's Quest: An Interactive Platformer

Instructions: Hey Everyone! Welcome to my best game yet: Jonny's Quest: An Interactive Platformer\n\n~What To Do~\n\n- Collect the key\n-Go to the lever after getting the key to unlock the door\n-Use arrow keys\n-Have fun\n\n                    

@Stage\n\n@Ground\n\nwhen I receive [next level v]\nnext costume\n\ngo to [front v] layer\n\nwhen flag clicked\nshow\nswitch costume to (lvel 1 v)\ngo [forward v] (2) layers\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [thmb v]\n\n@Sun\n\nwhen flag clicked\ngo to [back v] layer\ngo to x: (-172) y: (171)\nset [brightness v] effect to (30)\nforever\n    glide (2) secs to x: (-172) y: (171)\n    glide (2) secs to x: (-167) y: (165)\nend\n\ngo [forward v] (2) layers\n\nwhen flag clicked\nforever\n    play sound [Inferno v] until done\nend\n\n@Clouds\n\nwhen flag clicked\nhide\nforever\n    create clone of (_myself_ v)\n    wait (2) seconds\nend\n\nhide\n\nwhen I start as a clone\ngo [forward v] (5) layers\nset [ghost v] effect to (pick random (20) to (30))\nshow\ngo to x: (346) y: (pick random (119) to (60))\nglide (pick random (4) to (5)) secs to x: (-313) y: (pick random (119) to (65))\nhide\n\n@Door:\n\nwhen flag clicked\nshow\nforever\n    go to [back v] layer\nend\n\nwhen I receive [open_door v]\nhide\n\nwhen I receive [next level v]\nshow\n\nwhen I receive [die v]\nshow\n\ngo [forward v] (5) layers\n\n@Player\n\nwhen flag clicked\ngo to x: (-209) y: (-91)\nshow\nset [level v] to [1]\nset [key v] to [0]\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    if <<key (right arrow v) pressed?> or <<(mouse x) > (x position)> and <mouse down?>>> then\n        switch costume to (player v)\n        change [xv v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <<(x position) > (mouse x)> and <mouse down?>>> then\n        change [xv v] by (-1)\n        switch costume to (player2 v)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n        change y by (1)\n        if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n            change y by (1)\n            if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n                change y by (1)\n                if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n                    change y by (1)\n                    if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n                        change y by (1)\n                        if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n                            change x by ((Xv) * (-1))\n                            change y by (-5)\n                            if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-5]\n                                else\n                                    set [xv v] to [5]\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 [yv v] by (-1)\n    change y by (Yv)\n    if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#000000)?>> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <<<touching (ground v)?> or <touching (door: v)?>> or <touching color (#1f0000)?>> then\n        if <<key (up arrow v) pressed?> or <<(mouse y) > (y position)> and <mouse down?>>> then\n            set [yv v] to [15]\n        end\n    end\n    change y by (1)\n    if <touching (key v)?> then\n        broadcast (KEY v)\n    end\n    if <(x position) > [222]> then\n        change [level v] by (1)\n        broadcast (NEXT LEVEL v)\n    end\n    if <touching (lava v)?> then\n        broadcast (DIE v)\n    end\n    if <touching (spikes v)?> then\n        broadcast (DIE v)\n    end\n    if <touching color (#1b0000)?> then\n        change [yv v] by (20)\n    end\n    if <(y position) < [-181]> then\n        broadcast (DIE v)\n    end\nend\n\ngo to x: (-163) y: (-134)\n\nwhen I receive [key v]\nchange [key v] by (1)\n\nwhen I receive [next level v]\nset [key v] to [0]\ngo to x: (-209) y: (-91)\n\nwait (1) seconds\n\nwhen I receive [die v]\ngo to x: (-209) y: (-91)\nset [key v] to [0]\n\nchange [level v] by (1)\nbroadcast (NEXT LEVEL v)\n\nwhen flag clicked\nforever\n    if <(username) = [NinjaBuny898012]> then\n        stop [all v]\n    end\nend\n\n@Lever\n\nwhen flag clicked\nshow\ngo [backward v] (100) layers\nswitch costume to (closed v)\nforever\n    if <touching (player v)?> then\n        if <(Key) > [0]> then\n            broadcast (Open_Door v)\n            switch costume to (open v)\n        end\n    end\nend\n\nwhen I receive [next level v]\nswitch costume to (closed v)\n\nwhen flag clicked\nforever\n    if <([costume # v] of [ground v]) = [5]> then\n        go to x: (5) y: (128)\n    else\n        if <([costume # v] of [ground v]) = [6]> then\n            go to x: (127) y: (84)\n        else\n            if <([costume # v] of [ground v]) = [8]> then\n                go to x: (-97) y: (-94)\n            else\n                go to x: (170) y: (-94)\n            end\n        end\n    end\nend\n\nwhen I receive [die v]\nswitch costume to (closed v)\n\nwhen I receive [thmb v]\nhide\n\n@Key\n\nwhen flag clicked\nshow\nset [brightness v] effect to (30)\nforever\n\nchange y by (-10)\nwait (.1) seconds\nchange y by (10)\n\nmove (10) steps\n\nwhen I receive [key v]\nhide\n\nwhen I receive [next level v]\nshow\n\npoint in direction ((([sin v] of ((timer) * (300)) ) * (5)) + (90))\n\nwhen flag clicked\nforever\n    if <([costume # v] of [ground v]) = [3]> then\n        go to x: (-182) y: (82)\n    else\n        if <([costume # v] of [ground v]) = [4]> then\n            go to x: (113) y: (129)\n        else\n            if <([costume # v] of [ground v]) = [5]> then\n                go to x: (113) y: (129)\n            else\n                if <([costume # v] of [ground v]) = [6]> then\n                    go to x: (157) y: (165)\n                else\n                    if <([costume # v] of [ground v]) = [7]> then\n                        go to x: (171) y: (128)\n                    else\n                        if <([costume # v] of [ground v]) = [8]> then\n                            go to x: (19) y: (74)\n                        else\n                            if <([costume # v] of [ground v]) = [9]> then\n                                go to x: (-6) y: (163)\n                            else\n                                if <([costume # v] of [ground v]) = [10]> then\n                                    hide\n                                else\n                                    go to x: (-53) y: (-75)\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [die v]\nshow\n\n@Words\n\nwhen flag clicked\nforever\n    switch costume to (Level)\n    if <touching (player v)?> then\n        set [ghost v] effect to (50)\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\n@Lava\n\nwhen flag clicked\nset y to (-88)\ngo to [back v] layer\nforever\n    repeat (10)\n        change y by (1)\n    end\n    repeat (10)\n        change y by (-1)\n    end\nend\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\n@Spikes\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\n@Tramp\n\nwhen flag clicked\ngo to [back v] layer\nforever\n    if <color (#1b0000) is touching (#5282cc)?> then\n        switch costume to ( bounc v)\n    else\n        switch costume to (not bouncy v)\n    end\n    if <(Level) = [1]> then\n        hide\n    else\n        if <(Level) = [2]> then\n            hide\n        else\n            if <(Level) = [3]> then\n                hide\n            else\n                if <(Level) = [4]> then\n                    show\n                    go to x: (63) y: (28)\n                else\n                    if <(Level) = [5]> then\n                        hide\n                    end\n                end\n            end\n        end\n    end\nend\n\nswitch costume to ( bounc v)\n\nshow\ngo to x: (63) y: (28)\n\n@ThumbNail\n\nhide\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    show\n    set [ghost v] effect to (100)\nend\n\n