A Normal Platformer

Instructions: Inspired by @-Heron-\nA Normal Platformer.\nI recommend muting your sound, the music can get annoying.\nArrow keys and WASD.\nThat's basically it.\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\nComment "So Easy"

@Stage\n\nwhen I receive [reset v]\nforever\n    play sound [Hip Hop v] until done\nend\n\n@Level\n\nwhen I start as a clone\npoint in direction (90)\nshow\nif <(costume [number v]) = [2]> then\n    go to x: (236) y: (334)\n    repeat (12)\n        change y by (-25)\n    end\nend\nif <(costume [number v]) = [3]> then\n    go to x: (0) y: (0)\n    repeat (25)\n        change y by (10)\n    end\n    wait (6) seconds\n    repeat (7)\n        change x by (-30)\n        change y by (-18)\n    end\n    wait (2) seconds\n    repeat (15)\n        turn right (8) degrees\n    end\nend\nif <(costume [number v]) = [1]> then\n    switch costume to (costume3 v)\n    go to x: (86) y: (180)\n    set [gravity \(2\) v] to [-50]\n    repeat (10)\n        change [gravity \(2\) v] by (5)\n        change x by (Gravity \(2\))\n    end\n    wait (8) seconds\n    repeat until <touching (_edge_ v)?>\n        change y by (-5)\n    end\n    broadcast (COMEBACK v)\n    delete this clone\nend\nif <(costume [number v]) = [4]> then\n    show\n    set [ghost v] effect to (100)\n    go to x: (0) y: (-15)\n    set [gravity \(2\) v] to [10]\n    repeat (10)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n        change [ghost v] effect by (-10)\n    end\n    wait until <([x position v] of [player v]) > [144]>\n    set [gravity \(2\) v] to [0]\n    repeat (10)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\nif <(costume [number v]) = [5]> then\n    show\n    set [ghost v] effect to (100)\n    go to x: (0) y: (-35)\n    set [gravity \(2\) v] to [10]\n    repeat (10)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n        change [ghost v] effect by (-10)\n    end\n    wait until <([x position v] of [player v]) > [-39]>\n    set [gravity \(2\) v] to [9]\n    repeat (9)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n    end\n    wait (3) seconds\n    set [gravity \(2\) v] to [-9]\n    repeat (9)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (1)\n    end\n    wait until <([x position v] of [player v]) > [144]>\n    set [gravity \(2\) v] to [0]\n    repeat (10)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\nif <<<(costume [number v]) = [6]> or <(costume [number v]) = [7]>> or <<(costume [number v]) = [8]> or <(costume [number v]) = [9]>>> then\n    show\n    go to x: (0) y: (300)\n    point in direction (90)\n    repeat until <(y position) < [-200]>\n        change y by (-10)\n    end\n    broadcast (IMPOSSIBLE v)\nend\n\nwhen I receive [dismissed v]\nif <(costume [number v]) = [2]> then\n    repeat (12)\n        change y by (25)\n    end\n    delete this clone\nend\n\nwhen I receive [elevator \(1\) v]\nif <(costume [number v]) = [1]> then\n    switch costume to (costume3 v)\n    create clone of (_myself_ v)\n    switch costume to (costume1 v)\nend\nwait (4) seconds\nrepeat (20)\n    change y by (-12)\nend\nhide\ncreate clone of (_myself_ v)\n\nwhen I receive [comeback v]\nif <(costume [number v]) = [1]> then\n    show\n    repeat (5)\n        change y by (6)\n    end\n    wait (1) seconds\n    repeat (65)\n        change x by (-6)\n    end\n    wait (5) seconds\n    repeat (60)\n        change y by (3)\n    end\n    switch costume to (costume4 v)\n    create clone of (_myself_ v)\n    switch costume to (costume5 v)\n    create clone of (_myself_ v)\n    switch costume to (costume1 v)\n    wait until <([x position v] of [player v]) > [144]>\n    set [gravity \(2\) v] to [0]\n    repeat (10)\n        change y by (Gravity \(2\))\n        change [gravity \(2\) v] by (-1)\n        change [ghost v] effect by (10)\n    end\n    go to x: (0) y: (-100)\n    clear graphic effects\n    repeat (5)\n        change y by (4)\n    end\n    broadcast (Almost Done v)\nend\n\nwhen I receive [think fast v]\nswitch costume to (costume10 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\n\nwhen I start as a clone\nif <(costume [number v]) = [10]> then\n    switch costume to (costume6 v)\n    hide\n    repeat (4)\n        wait (.8) seconds\n        create clone of (_myself_ v)\n        next costume\n    end\nend\n\nwhen I receive [end v]\nrepeat (20)\nwait (1) seconds\nswitch costume to (costume11 v)\ngo to x: (0) y: (0)\n\nwhen I receive [reset v]\npoint in direction (90)\nshow\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nwait (.1) seconds\nwait until <([x position v] of [player v]) > [129]>\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\nbroadcast (Message v)\n\nwhen I receive [fail v]\nstop [other scripts in sprite v]\nbroadcast (Reset v)\n\nwhen I receive [reset v]\ndelete this clone\n\n@Player\n\ndefine Touch ground <head?>\nswitch costume to (costume1 v)\nchange [falling? v] by (1)\nrepeat until <not <touching (level v)?>>\n    if <head?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [gravity v] to [0]\nend\nswitch costume to (costume2 v)\n\ndefine Move (speed)\nswitch costume to (costume1 v)\nchange x by (speed)\nset [slope v] to [0]\nif <touching (level v)?> then\n    repeat until <<(Slope) = [8]> or <not <touching (level v)?>>>\n        change y by (1)\n        change [slope v] by (1)\n    end\n    if <(Slope) = [8]> then\n        change x by ((0) - (speed))\n        change y by ((0) - (Slope))\n    end\nend\nswitch costume to (costume2 v)\n\nwhen I receive [impossible v]\nwait until <(x position) > [234]>\nbroadcast (End v)\n\nwhen I receive [end v]\nrepeat (20)\nwait (1) seconds\ngo to x: (0) y: (0)\n\nwhen I receive [reset v]\nset [falling? v] to [0]\ngo to x: (-151) y: (-2)\nset [gravity v] to [0]\nforever\n    change [gravity v] by (-1)\n    change [falling? v] by (1)\n    change y by (Gravity)\n    Touch ground <(Gravity) > [0]>\nend\n\nwhen I receive [reset v]\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        Move [6]\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        Move [-6]\n    end\nend\n\nwhen I receive [reset v]\nforever\n    if <<(Falling?) < [1]> and <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n        set [gravity v] to [15]\n    end\nend\n\nwhen flag clicked\ngo to x: (-188) y: (-88)\nset [1st? v] to [0]\nforever\n    if <key ((join [enter] []) v) pressed?> then\n        broadcast (Reset v)\n    end\nend\n\nwhen I receive [fail v]\nstop [other scripts in sprite v]\nbroadcast (Reset v)\n\nwhen I receive [reset v]\nforever\n    if <<touching (danger v)?> or <(y position) < [-170]>> then\n        broadcast (Reset v)\n        broadcast (Fail v)\n    end\nend\n\nwhen I receive [lights out v]\nstop [other scripts in sprite v]\n\n@Words\n\nwhen I receive [message v]\nshow\nswitch costume to (costume3 v)\nrepeat (2)\n    wait (3) seconds\n    next costume\n    wait (.02) seconds\nend\nwait (2) seconds\nbroadcast (Dismissed v)\nwait until <([x position v] of [player v]) > [230]>\nnext costume\nwait (3) seconds\nnext costume\nwait (.3) seconds\nwait (3) seconds\nnext costume\nwait (1) seconds\nbroadcast (DANGER v)\nwait (2) seconds\nnext costume\nbroadcast (Elevator \(1\) v)\nwait (9) seconds\nnext costume\nwait (3) seconds\nnext costume\nwait (3) seconds\nnext costume\nwait (5) seconds\nnext costume\nwait (2) seconds\nnext costume\nwait (5) seconds\nhide\n\nwhen I start as a clone\nif <(costume [number v]) = [2]> then\n    set [ghost v] effect to (0)\n    switch costume to (costume1 v)\n    if <(costume [number v]) = [1]> then\n        go to x: (-6) y: (-7)\n        wait until <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<key (left arrow v) pressed?> or <<key (right arrow v) pressed?> or <<key (a v) pressed?> or >>>>>\n        repeat (10)\n            change y by (-3)\n            change [ghost v] effect by (10)\n        end\n        delete this clone\n    end\nend\n\nwhen I receive [almost done v]\nwait (1) seconds\nshow\nswitch costume to (costume19 v)\nwait (2) seconds\nswitch costume to (costume16 v)\nrepeat (3)\n    wait (3) seconds\n    next costume\nend\nbroadcast (THINK FAST v)\nwait (5) seconds\nbroadcast (DRAG v)\nnext costume\n\nwhen I receive [impossible v]\nswitch costume to (costume21 v)\n\nwhen I receive [end v]\nhide\nwait (3) seconds\nshow\nswitch costume to (costume23 v)\ngo to [front v] layer\nwait (3) seconds\nnext costume\nbroadcast (DOOM v)\nwait (3) seconds\nnext costume\nwait (3) seconds\nswitch costume to (costume26 v)\nwait (2) seconds\nbroadcast (Lights out v)\nhide\nwait (1) seconds\nswitch costume to (costume25 v)\nshow\n\nwhen I receive [reset v]\nshow\ngo to x: (-6) y: (-7)\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [fail v]\nstop [other scripts in sprite v]\nbroadcast (Reset v)\n\nwait (3) seconds\n\nwait (3) seconds\n\n@Danger\n\nwhen I receive [danger v]\ngo to x: (-19) y: (-161)\nshow\nrepeat (5)\n    change y by (5)\nend\nwait (5) seconds\nrepeat (10)\n    change y by (-12)\nend\nhide\n\nwhen I receive [comeback v]\nshow\nswitch costume to (platform v)\ngo to x: (-442) y: (110)\nwait (1) seconds\nrepeat (10)\n    change x by (5.5)\nend\nwait (3) seconds\nset [gravity \(2\) v] to [2]\nrepeat (15)\n    change [gravity \(2\) v] by (-1)\n    change y by (Gravity \(2\))\nend\nwait (4) seconds\nhide\n\nwhen I receive [doom v]\nshow\nswitch costume to (doom lava v)\ngo to x: (0) y: (-200)\ngo to [front v] layer\nrepeat (27)\n    change y by (3)\nend\n\nwhen I receive [reset v]\nshow\nhide\ngo to x: (-19) y: (-161)\nswitch costume to (spikes v)\ngo to x: (-19) y: (-161)\n\nwhen I receive [fail v]\nstop [other scripts in sprite v]\nbroadcast (Reset v)\n\n@Dark\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nhide\n\nwhen I receive [end v]\nshow\nset [ghost v] effect to (100)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nwait (1) seconds\nhide\n\nwhen I receive [fail v]\nstop [other scripts in sprite v]\nbroadcast (Reset v)\n\nwhen I receive [lights out v]\nclear graphic effects\nshow\n\n@Sprite1\n\ngo to x: (0) y: (0)\n\nwhen flag clicked\nshow\ngo to [front v] layer\nset [ghost v] effect to (0)\nwait until <key ((join [enter] []) v) pressed?>\nset [ghost v] effect to (100)\nforever\n\n