Neon Platformer

Instructions: My 130th project!\n\nA game for all your sliding, jumping, wall jumping, UNDERTALE and rage quitting needs!\n\nIt is possible, its tested by me and I'm bad at platformers.\n\n30 levels + win level.\n\nFeel free to remix, but only if:\n1 - You actually change something.\n2 - You credit me\n3 - You don't steal views\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\nblank spaces?

@Stage\n\nwhen flag clicked\nbroadcast (music v)\nset [mute v] to [0]\nforever\n    if <(mute) = [1]> then\n        set volume to (100) %\n        repeat (10)\n            change volume by (-10)\n        end\n        wait until <(mute) = [0]>\n    else\n        set volume to (0) %\n        repeat (10)\n            change volume by (10)\n        end\n        wait until <(mute) = [1]>\n    end\nend\n\nwhen I receive [music v]\nforever\n    set volume to (100) %\nend\n\nplay sound [\[Undertale Remix\] SharaX - Megalovania.mp3 v] until done\n\nwhen [m v] key pressed\nif <(mute) = [0]> then\n    set [mute v] to [1]\nelse\n    set [mute v] to [0]\nend\n\nwhen flag clicked\nforever\n    if <([costume # v] of [levels v]) = [31]> then\n        stop [other scripts in sprite v]\n        stop all sounds\n        forever\n            play sound [Waters of Megalovania v] until done\n        end\n    end\nend\n\nstop all sounds\n\nset [mute v] to [1]\n\nstop all sounds\n\nwhen flag clicked\nforever\nend\n\n@Sprite1\n\n@Player\n\nwhen flag clicked\ngo to x: (-200) y: (180)\nset [xv v] to [0]\nset [yv v] to [0]\nset [slope v] to [0]\nset [falling v] to [6]\nset [died? v] to [0]\nset [died by lava? v] to [0]\nset [power-up_time v] to [0]\nset size to (100) %\nforever\n    change [yv v] by (-1)\n    change [falling v] by (1)\n    change y by (yv)\n    touching ground <(yv) > [0]>\n    set [xv v] to ((xv) * (0.85))\n    if <(wall jump) > [0]> then\n        change [wall jump v] by (-1)\n    else\n        if <key (right arrow v) pressed?> then\n            change [xv v] by (1.5)\n        end\n        if <key (left arrow v) pressed?> then\n            change [xv v] by (-1.5)\n        end\n    end\n    if <(xv) > [0.5]> then\n        Walk (xv) (90)\n    else\n        if <[-0.5] > (xv)> then\n            Walk (xv) (-90)\n        end\n    end\n    if <key (up arrow v) pressed?> then\n        if <<(jump key?) = [0]> and <(falling) < [3]>> then\n            set [yv v] to ((15) + (((((100) - (size)) / (30)) * (3)) - (3)))\n            set [falling v] to [6]\n            set [jump key? v] to [1]\n        end\n    else\n        set [jump key? v] to [0]\n    end\n    if <(x position) > [235]> then\n        broadcast (next level v)\n    end\n    if <(y position) < [-178]> then\n        if <(died?) = [0]> then\n            set [died? v] to [1]\n            broadcast (fall v)\n        end\n        broadcast (death v)\n    end\n    if <(power-up_time) > [0]> then\n        change [power-up_time v] by (-1)\n    end\n    if <(power-up_time) > [0]> then\n        set size to (50) %\n    else\n        set size to (100) %\n    end\n    if <([costume # v] of [levels v]) = [20]> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\n    if <touching color (#cc0000)?> then\n        if <(died by lava?) = [0]> then\n            broadcast (lava v)\n        end\n        set [died by lava? v] to [1]\n        broadcast (death v)\n    end\nend\n\ndefine touching ground <up>\nrepeat until <not <touching color (#00ffff)?>>\n    if <up> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling v] to [0]\n    end\n    set [yv v] to [0]\nend\n\nwhen I receive [next level v]\nset size to (100) %\ngo to x: (-200) y: (180)\nset [xv v] to [0]\nset [yv v] to [0]\nset [slope v] to [0]\nset [falling v] to [6]\nset [power-up_time v] to [0]\n\nwhen I receive [death v]\ngo to x: (-200) y: (180)\nset [xv v] to [0]\nset [yv v] to [0]\nset [slope v] to [0]\nset [falling v] to [6]\nset [power-up_time v] to [0]\n\ndefine Walk (speed) (direction)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <touching color (#00ffff)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    if <touching color (#cc0000)?> then\n        broadcast (death v)\n    end\n    if <not <touching color (#003fff)?>> then\n        change x by (() - (speed))\n    end\n    change y by (() - (slope))\n    if <<key (up arrow v) pressed?> and <([abs v] of (speed) ) > [3]>> then\n        if <(wall jump) = [0]> then\n            set [xv v] to (() - (speed))\n            set [yv v] to [9]\n            set [falling v] to [0]\n            set [wall jump v] to [10]\n        else\n            set [xv v] to [0]\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [2]> then\n        broadcast (what are those v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [go to x: 150 y: 100 v]\ngo to x: (150) y: (100)\n\n@Levels\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nset [level v] to [1]\nforever\n    set [visual v] to (join [Level ] (level))\n    hide variable [visual v]\n    show variable [visual v]\nend\n\nwhen I receive [next level v]\nchange [level v] by (1)\nswitch costume to (level)\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [14]> then\n        broadcast (lvl13 v)\n        stop [this script v]\n    end\nend\n\nwhen [space v] key pressed\nif <key (c v) pressed?> then\n    if <<(username) = [yummymuffins9978]> or <(username) = [yummymuffins8799]>> then\n        go to x: (0) y: (0)\n        broadcast (go to x: 150 y: 100 v)\n        set [level v] to [30]\n        switch costume to (costume30 v)\n    end\nend\n\n@Key1\n\nwhen flag clicked\nhide\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [7]>\nshow\ngo to x: (-125) y: (55)\nrepeat until <touching (player v)?>\n    show\n    go to x: (-125) y: (55)\nend\nbroadcast (keys v)\nhide\nbroadcast (show door1 v)\n\n@Door1\n\nwhen flag clicked\nhide\n\nwhen I receive [show door1 v]\ngo to x: (100) y: (42)\nshow\n\nwhen I receive [next level v]\nhide\n\n@Key2\n\nwhen flag clicked\nhide\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [8]>\nshow\ngo to x: (100) y: (-160)\nrepeat until <touching (player v)?>\n    show\n    go to x: (100) y: (-160)\nend\nhide\nbroadcast (show door2 v)\n\n@Door2\n\nwhen flag clicked\nhide\n\nwhen I receive [show door2 v]\ngo to x: (100) y: (42)\nshow\n\nwhen I receive [next level v]\nhide\n\n@Level/load\n\nwhen flag clicked\nhide\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [18]>\nwait (20) seconds\nshow\ngo to x: (0) y: (0)\nwait until <not <([costume # v] of [levels v]) = [18]>>\nhide\n\n@Power-up\n\nwhen flag clicked\nhide\nset [power-upped? v] to [0]\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [19]>\nrepeat until <touching (player v)?>\n    show\n    go to x: (-150) y: (25)\nend\nif <(power-upped?) = [0]> then\n    broadcast (shrink v)\nend\nset [power-upped? v] to [1]\nset [power-up_time v] to [450]\nhide\nwait until <([costume # v] of [levels v]) = [20]>\n\nwhen I receive [death v]\nif <([costume # v] of [levels v]) = [19]> then\n    repeat until <touching (player v)?>\n        show\n        go to x: (-150) y: (25)\n    end\n    set [power-up_time v] to [450]\n    hide\n    wait until <([costume # v] of [levels v]) = [20]>\nend\n\n@Achievement1\n\nwhen flag clicked\ngo to x: (0) y: (-190)\nhide\n\nwhen I receive [lava v]\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [fall v]\nswitch costume to (costume1 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [shrink v]\nswitch costume to (costume5 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [lvl13 v]\nswitch costume to (costume4 v)\n\nwhen I receive [keys v]\nswitch costume to (costume6 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [what are those v]\nswitch costume to (costume3 v)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to x: (0) y: (190)\nshow\nrepeat (10)\n    change y by (-4)\nend\nwait (5) seconds\nrepeat (10)\n    change y by (4)\nend\nhide\ngo to x: (0) y: (-190)\nhide\ndelete this clone\n\n