Glass: A unique platformer

Instructions: Arrow keys, WAD or tap to move. R to restart.\nThe rest of the instructions are in the project.\n\nI spent a lot of time on this.\nNo, I did not reshare for fame. I added a new mechanic and some levels for bounce pads.

@Stage\n\nwhen I receive [play v]\nforever\n    play sound [Creo - Dark Tides v] until done\nend\n\n@Player\n\nwhen [space v] key pressed\nnext costume\n\nwhen I receive [play v]\ngo to [front v] layer\nswitch costume to (costume2 v)\nset [ghost v] effect to (0)\nshow\ngo to x: (-171) y: (-94)\nset [level v] to [1]\nset [x v] to [0]\nset [y v] to [0]\npoint in direction (90)\nforever\n    if <touching (bouncers v)?> then\n        start sound [Boing v]\n        set [y v] to [20]\n    end\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        change [x v] by (-0.8)\n        switch costume to (costume1 v)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        switch costume to (costume2 v)\n        change [x v] by (0.8)\n    end\n    change x by (x)\n    set [x v] to ((x) * (0.9))\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        if <<(x) < [-5]> or <(x) > [5]>> then\n            if <touching (ground v)?> then\n                break\n                broadcast (dead v)\n            end\n        end\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        change y by (1)\n    end\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        change y by (-4)\n        change x by ((x) * (-1))\n        if <touching (ground v)?> then\n            if <(y) < [-13]> then\n                break\n                broadcast (dead v)\n            end\n        end\n        set [x v] to [0]\n        change x by (-0.1)\n    end\n    change y by (y)\n    if <<touching (ground v)?> or <touching (grass!!! v)?>> then\n        if <touching (ground v)?> then\n            if <(y) < [-12]> then\n                break\n                broadcast (dead v)\n            end\n        end\n        change y by ((0) - (y))\n        set [y v] to [1]\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 (ground v)?> or <touching (grass!!! v)?>>> then\n        if <touching (grass!!! v)?> then\n            if <(y) < [-12]> then\n                break\n                broadcast (dead v)\n            end\n        end\n        set [y v] to [15]\n    end\n    change y by (1)\n    if <(y position) > [180]> then\n        set [y v] to [0]\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nset [level v] to [1]\nforever\n    if <(x position) > [210]> then\n        go to x: (-180) y: (-50)\n        broadcast (levelup v)\n        change [level v] by (1)\n    end\n    if <(y position) < [-175]> then\n        break\n        go to x: (-180) y: (-50)\n        broadcast (dead v)\n    end\n    if <(Level) = [15]> then\n        broadcast (end v)\n        stop [other scripts in sprite v]\n    end\nend\n\nwhen I receive [levelup v]\ngo to x: (-180) y: (-50)\nset [x v] to [0]\nset [y v] to [0]\n\ndefine break\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (costume3 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume4 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume2 v)\nstart sound [Glass Breaking v]\ngo to x: (-180) y: (-50)\n\nwhen I start as a clone\nif <(costume [number v]) = [3]> then\n    set [death effect v] to [10]\n    repeat (20)\n        change x by (-3)\n        change [death effect v] by (-1)\n        change y by (death effect)\n        change [ghost v] effect by (5)\n    end\nelse\n    set [death effect v] to [10]\n    repeat (20)\n        change x by (3)\n        change [death effect v] by (-1)\n        change y by (death effect)\n        change [ghost v] effect by (5)\n    end\nend\ndelete this clone\n\nwhen [r v] key pressed\nbreak\nbroadcast (dead v)\nwait until <not <key (r v) pressed?>>\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\n\n@Ground\n\nwhen I receive [levelup v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [front v] layer\n\nbroadcast (levelup v)\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\n\n@text\n\nwhen flag clicked\nhide\nforever\n    switch costume to ([costume # v] of [ground v])\n    go to [front v] layer\nend\n\nwhen I receive [play v]\nshow\n\nwhen flag clicked\nhide\n\n@GRASS!!!\n\nwhen flag clicked\nforever\n    switch costume to ([costume # v] of [ground v])\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\n\n@grass blades\n\nwhen flag clicked\ngo to [back v] layer\nforever\n    switch costume to ([costume # v] of [ground v])\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\n\n@Moon\n\nwhen flag clicked\ngo to [back v] layer\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\nwait (2) seconds\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\nwait (2) seconds\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume1 v)\n\nwhen I start as a clone\ngo to [back v] layer\nset [ghost v] effect to (50)\nforever\n    repeat (100)\n        switch costume to (costume3 v)\n        change size by (1)\n        switch costume to (costume2 v)\n    end\n    repeat (100)\n        switch costume to (costume3 v)\n        change size by (-1)\n        switch costume to (costume2 v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\n\n@Thumbnail\n\nwhen [timer v] > (0.0001)\nstart sound [Disconnect v]\nshow\ngo to [front v] layer\nset size to (1) %\nswitch costume to (costume1 v)\nrepeat (10)\n    change size by (10)\nend\nswitch costume to (costume2 v)\nset size to (100) %\nswitch costume to (costume1 v)\n\nwhen flag clicked\nhide\nforever\n    reset timer\nend\n\nwait (1) seconds\n\nwhen flag clicked\nhide\n\n@Bouncers\n\nwhen I receive [levelup v]\nnext costume\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\ngo to [back v] layer\n\nbroadcast (levelup v)\n\nwhen I receive [play v]\nshow\n\n@Intro\n\nwhen flag clicked\npoint in direction (90)\nset size to (100) %\nstart sound [938418_Teminite---Rise-And-Shine2 v]\nswitch costume to (bg v)\ncreate clone of (_myself_ v)\nswitch costume to (diamond v)\ncreate clone of (_myself_ v)\nswitch costume to (shockline1 v)\ncreate clone of (_myself_ v)\nswitch costume to (text v)\ncreate clone of (_myself_ v)\nswitch costume to (black effect v)\ncreate clone of (_myself_ v)\nhide\nrepeat (8)\n    wait (0.5) seconds\n    switch costume to (effectsquare1 v)\n    create clone of (_myself_ v)\n    broadcast (Boom v)\nend\nwait (0.5) seconds\nbroadcast (Boom v)\nswitch costume to (effectsquare1 v)\ncreate clone of (_myself_ v)\nswitch costume to (square v)\ncreate clone of (_myself_ v)\nwait (0.5) seconds\nbroadcast (Boom v)\nswitch costume to (effectsquare1 v)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\nif <(costume [number v]) = [3]> then\n    set [intro v] to [16]\n    repeat (8)\n        next costume\n        change [intro v] by (-2)\n        change size by (intro)\n    end\nend\n\nwhen I start as a clone\nshow\nif <(costume [number v]) = [1]> then\n    set size to (50) %\n    set [intro v] to [10]\n    repeat (10)\n        change [intro v] by (-1)\n        change size by (intro)\n    end\nend\n\nwhen I receive [boom v]\nif <(costume [number v]) = [12]> then\n    create clone of (_myself_ v)\n    set [intro v] to [20]\n    repeat (10)\n        if <(size) > [100]> then\n            turn right (intro) degrees\n            switch costume to (blank v)\n            change size by (intro)\n            switch costume to (diamond v)\n            change [intro v] by (-2)\n        else\n            turn right (intro) degrees\n            change size by (intro)\n            switch costume to (diamond v)\n            change [intro v] by (-2)\n        end\n    end\n    if <(size) > [400]> then\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [12]> then\n    point in direction (90)\n    set size to (0) %\nend\n\nwhen I receive [boom v]\nif <(costume [number v]) = [1]> then\n    set size to (120) %\n    set [dir v] to (pick random (90) to (100))\n    repeat (15)\n        change size by (-2)\n        turn right (((dir) - (direction)) / (10)) degrees\n    end\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [13]> then\n    set size to (0) %\n    repeat (60)\n        if <(size) > [100]> then\n            turn right (10) degrees\n            switch costume to (blank v)\n            change size by (40)\n            switch costume to (square v)\n        else\n            turn right (10) degrees\n            change size by (40)\n        end\n    end\n    broadcast (EndIntro v)\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\n\nwhen I receive [endintro v]\nbroadcast (play v)\nif <not <(costume [number v]) = [13]>> then\n    delete this clone\nend\n\nwhen I receive [boom v]\nif <(costume [number v]) = [14]> then\n    switch costume to (blank v)\n    set size to (150) %\n    switch costume to (black effect v)\n    point in direction (90)\n    set [bounce vel v] to [20]\n    repeat (15)\n        set [bounce vel v] to (((Bounce Vel) * (0.6)) + (((90) - (direction)) / (3)))\n        turn right (Bounce Vel) degrees\n    end\nend\n\n