complete reversed || a mobile platformer

Instructions: WASD, arrow keys (reversed) / press x to skip a level\norange is bouncy\nblue makes you fast\nmore levels coming soon\n\nshotouts: @-Imagineer- and @lorlyc <-- follow them

@Stage\n\n@player\n\ndefine engine\nif <(y position) < [-170]> then\n    set [vy v] to [25]\nend\nif <(x position) > [220]> then\n    broadcast (go in v)\n    wait (1) seconds\n    go to x: (-200) y: (-139)\n    change [level v] by (1)\nend\nif <<[170] < (y position)> or <touching color (#000000)?>> then\n    broadcast (2 v)\n    go to x: (-200) y: (-139)\n    start sound [Bonk v]\n    set [vx v] to [0]\n    set [vy v] to [0]\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<(mouse x) > (x position)> and <mouse down?>>> then\n    change [vx v] by (-1)\nend\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<(x position) > (mouse x)> and <mouse down?>>> then\n    change [vx v] by (1)\nend\nset [vx v] to ((vx) * (0.84))\nchange x by (vx)\nif <touching (hitbox v)?> then\n    change y by (-2)\n    if <touching (hitbox v)?> then\n        change y by (1)\n        if <touching (hitbox v)?> then\n            change y by (1)\n            if <touching (hitbox v)?> then\n                change y by (1)\n                if <touching (hitbox v)?> then\n                    change y by (1)\n                    if <touching (hitbox v)?> then\n                        change y by (1)\n                        if <touching (hitbox v)?> then\n                            change y by (-5)\n                            change x by ((-1) * (vx))\n                            if << or <<(pick random (1) to (10)) > (mouse y)> and <mouse down?>>> and <not <(vx) = [0]>>> then\n                                set [m v] to [walljump]\n                                set [vy v] to [8]\n                                set [vx v] to (((vx) / ([abs v] of (vx) )) * (-10))\n                            else\n                                set [m v] to [wallslide]\n                                set [vx v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (2)\nend\nchange y by (-3)\nif <touching (hitbox v)?> then\n    if <(vy) = [-3]> then\n        if <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>> then\n            set [m v] to [run]\n        else\n            if <([abs v] of (vx) ) > [.1]> then\n                set [m v] to [slide]\n            else\n                set [m v] to [stand]\n            end\n        end\n    end\n    if <<<(y position) > (mouse y)> and <mouse down?>> or <<key (s v) pressed?> or <key (down arrow v) pressed?>>> then\n        set [m v] to [jump]\n        set [vy v] to [9]\n    end\nend\nif <<<<(m) = [jump]> or <(m) = [walljump]>> and <(vy) < [0]>> or <<<(m) = [run]> or <(m) = [slide]>> and <(vy) < [-3]>>> then\n    set [m v] to [fall]\nend\nchange y by (3)\nif <(vy) > [-15]> then\n    change [vy v] by (-0.5)\nend\nchange y by (-2)\nif <not <touching (hitbox v)?>> then\n    change y by (-1)\n    if <not <touching (hitbox v)?>> then\n        change y by (-1)\n        if <not <touching (hitbox v)?>> then\n            change y by (-1)\n            if <not <touching (hitbox v)?>> then\n                change y by (-1)\n                if <not <touching (hitbox v)?>> then\n                    change y by (-1)\n                    if <not <touching (hitbox v)?>> then\n                        change y by (5)\n                    end\n                end\n            end\n        end\n    end\nend\nchange y by (2)\nchange y by (vy)\nif <touching (hitbox v)?> then\n    change y by (-2)\n    if <touching (hitbox v)?> then\n        change y by ((-1) * (vy))\n        set [vy v] to [-3]\n    end\n    change y by (2)\nend\nif <touching color (#ffb236)?> then\n    set [vy v] to [15]\n    start sound [Jump v]\nend\nclones\nif <touching color (#36b3ff)?> then\n    set [vx v] to [35]\nend\nif <touching color (#e236ff)?> then\n    set [vx v] to [-35]\nend\nif <touching color (#c3ff36)?> then\n    set [vy v] to [-15]\nend\nif <[-230] > (x position)> then\n    set x to (-230)\nend\n\nwhen I receive [redinchoose v]\nset [color v] effect to (0)\n\nwhen I receive [blue v]\nset [color v] effect to (100)\n\nwhen I receive [darkblue v]\nset [color v] effect to (120)\n\nwhen I receive [darkgreen v]\nset [color v] effect to (70)\n\nwhen I receive [green v]\nset [color v] effect to (40)\n\nwhen I receive [orange v]\nset [color v] effect to (30)\n\nwhen I receive [red v]\nset [color v] effect to (0)\n\nwhen I receive [yellow v]\nset [color v] effect to (30)\n\nwhen I receive [blueinchoose v]\nset [color v] effect to (100)\n\nwhen I receive [orange v]\nset [color v] effect to (20)\n\nwhen I receive [darkblueinchoose v]\nset [color v] effect to (120)\n\nwhen I receive [darkgreeninchoose v]\nset [color v] effect to (70)\n\nwhen I receive [orangeinchoose v]\nset [color v] effect to (20)\n\nwhen I receive [yellowinchoose v]\nset [color v] effect to (30)\n\nwhen I receive [greeninchoose v]\nset [color v] effect to (40)\n\nwhen I receive [start v]\nset [done? v] to [0]\nshow\nset [vx v] to [0]\nset [vy v] to [0]\nif <not <(sellected?) = [1]>> then\n    repeat until <(done?) = [1]>\n        go to x: (0) y: (75)\n        set size to (400) %\n    end\nend\nset size to (150) %\ngo to x: (-200) y: (-139)\nshow\nforever\n    if <(level) = [20]> then\n        hide\n    else\n        engine\n    end\nend\n\nwhen I receive [start v]\nstop all sounds\nset volume to (75) %\nplay sound [Vexento_-_Sunrise\[Converterino v] until done\n\nwhen flag clicked\nhide\n\nwhen I receive [to start v]\ngo to x: (-200) y: (-139)\n\ndefine clones\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nset size to (150) %\nset [ghost v] effect to (50)\nwait (0.1) seconds\nrepeat (10)\n    turn right (15) degrees\n    change size by (-10)\n    change [ghost v] effect by (6)\nend\ndelete this clone\n\n@color choose\n\nwhen I start as a clone\nshow\nset size to (100) %\ngo to x: (-75) y: (-200)\nif <(whichcolor?) = [1]> then\n    set [color v] effect to (0)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (redinchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (red v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [2]> then\n    set [color v] effect to (20)\n    go to x: (-50) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (orangeinchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (orange v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [3]> then\n    set [color v] effect to (30)\n    go to x: (-25) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (yellowinchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (yellow v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [4]> then\n    set [color v] effect to (40)\n    go to x: (0) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (greeninchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (green v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [5]> then\n    set [color v] effect to (70)\n    go to x: (25) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (darkgreeninchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (darkgreen v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [6]> then\n    set [color v] effect to (100)\n    go to x: (50) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (blueinchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (blue v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I start as a clone\nshow\nset size to (100) %\nif <(whichcolor?) = [7]> then\n    set [color v] effect to (120)\n    go to x: (75) y: (-200)\n    repeat (25)\n        change y by ((y position) / (-7))\n    end\n    repeat until <(done?) = [1]>\n        if <touching (mouse-pointer v)?> then\n            set size to (110) %\n            broadcast (darkblueinchoose v)\n        end\n        if <not <touching (mouse-pointer v)?>> then\n            set size to (100) %\n        end\n        if <<touching (mouse-pointer v)?> and <mouse down?>> then\n            broadcast (darkblue v)\n            set [done? v] to [1]\n        end\n    end\n    hide\n    go to x: (1000) y: (1000)\nend\n\nwhen I receive [start v]\nset [whichcolor? v] to [0]\nhide\ngo to x: (1000) y: (1000)\nif <not <(sellected?) = [1]>> then\n    repeat (7)\n        create clone of (_myself_ v)\n        change [whichcolor? v] by (1)\n        wait (0.1) seconds\n    end\n    change [sellected? v] by (1)\nend\n\nwhen I receive [start v]\nforever\n    if <(done?) = [1]> then\n        hide\n    end\nend\n\nwhen flag clicked\nset [sellected? v] to [0]\n\n@level\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [done? v] to [0]\nset [level v] to [1]\nset size to (100) %\nrepeat until <(done?) = [1]>\n    switch costume to (0 v)\nend\nshow\nforever\n    switch costume to ((level) + (1))\n    set [color v] effect to (0)\nend\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nset [done? v] to [0]\nset [level v] to [1]\nset size to (100) %\n\nwhen I receive [menu v]\nswitch costume to (0 v)\n\nwhen I receive [2 v]\nrepeat (7)\n    change x by (pick random (-1) to (1))\n    change y by (pick random (-0.5) to (0.2))\nend\nset x to (0)\nset y to (0)\n\n@thumbnail\n\nwhen flag clicked\nswitch costume to (kostüm2 v)\nset size to (100) %\nswitch costume to (thumbnail v)\nforever\n    show\n    go to x: (0) y: (0)\n    set [ghost v] effect to (100)\n    switch costume to (thumbnail v)\n    go to [front v] layer\n    if <<key (x v) pressed?> and <not <(level) > [19]>>> then\n        set [level v] to ((level) + (1))\n        wait until <not <key (x v) pressed?>>\n        set [vx v] to [0]\n        set [vy v] to [0]\n        broadcast (to start v)\n    end\nend\n\n@black\n\nwhen I receive [go in v]\nset [brightness v] effect to (20)\ngo to x: (-465) y: (0)\nshow\ngo to [front v] layer\nset [ghost v] effect to (0)\nrepeat until <([abs v] of (x position) ) < [2]>\n    change x by (((0) - (x position)) / (6))\nend\nset x to (0)\ngo to x: (0) y: (0)\nrepeat (32)\n    change x by (((465) - (x position)) / (8))\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen flag clicked\nhide\n\n@Intro\n\nwhen flag clicked\nstart sound [Zaza - Be Together v]\nset volume to (75) %\nset size to (100) %\npoint in direction (90)\ncreate clone of (_myself_ v)\nswitch costume to (d v)\nshow\nset [ghost v] effect to (100)\ngo to x: (-180) y: (0)\nrepeat (9)\n    change x by ((5) - ((x position) * (0.2)))\n    change [ghost v] effect by (-10)\n    wait (0.03) seconds\nend\ngo to x: (0) y: (0)\nswitch costume to (logo v)\nwait (3) seconds\nrepeat (100)\n    turn right ((3.45) - ((direction) * (0.2))) degrees\n    change size by ((-2) - ((size) / (5)))\n    change [ghost v] effect by (10)\n    change volume by (-1)\nend\nhide\npoint in direction (90)\nbroadcast (start v)\n\nwhen I start as a clone\nswitch costume to (n v)\nshow\nset [ghost v] effect to (100)\ngo to x: (180) y: (0)\nrepeat (9)\n    change x by ((-5) - ((x position) * (0.2)))\n    change [ghost v] effect by (-10)\n    wait (0.03) seconds\nend\ngo to x: (0) y: (0)\ndelete this clone\n\n@outro\n\nwhen flag clicked\nset [level v] to [1]\nhide\nwait until <(level) = [20]>\nstop all sounds\nshow\nstart sound [Zaza - Be Together v]\nset volume to (100) %\nset size to (100) %\npoint in direction (90)\nswitch costume to (n v)\ncreate clone of (_myself_ v)\nswitch costume to (d v)\nshow\nset [ghost v] effect to (100)\ngo to x: (-180) y: (0)\nrepeat (9)\n    change x by ((5) - ((x position) * (0.2)))\n    change [ghost v] effect by (-10)\n    wait (0.03) seconds\nend\ngo to x: (0) y: (0)\nswitch costume to (logo v)\nwait (2) seconds\nrepeat (10)\n    change y by ((5) - ((y position) * (0.2)))\n    change [ghost v] effect by (-10)\n    wait (0.03) seconds\nend\nwait (1) seconds\nswitch costume to (luv fav fuloe v)\ncreate clone of (_myself_ v)\nswitch costume to (logo v)\nwait (1) seconds\nforever\n    set size to ((100) + ((10) * ([cos v] of (((timer) - (1)) * (200)) ))) %\n    point in direction ((90) + ((15) * ([cos v] of (((timer) - (2)) * (275)) )))\nend\n\nwhen I start as a clone\nif <(costume [name v]) = [n]> then\n    switch costume to (n v)\n    show\n    set [ghost v] effect to (100)\n    go to x: (180) y: (0)\n    repeat (9)\n        change x by ((-5) - ((x position) * (0.2)))\n        change [ghost v] effect by (-10)\n        wait (0.03) seconds\n    end\n    go to x: (0) y: (0)\n    delete this clone\nend\nif <(costume [number v]) = [4]> then\n    go to x: (0) y: (-50)\n    repeat (10)\n        change y by ((5) - ((y position) * (0.2)))\n        change [ghost v] effect by (-10)\n        wait (0.03) seconds\n    end\n    wait (1) seconds\n    forever\n        set size to ((75) + ((10) * ([cos v] of (((timer) - (1)) * (200)) ))) %\n        point in direction ((90) + ((15) * ([cos v] of (((timer) - (2)) * (275)) )))\n    end\nend\n\n@hitbox\n\nwhen flag clicked\ngo to x: (0) y: (-2)\nset [done? v] to [0]\nset [level v] to [1]\nset size to (100) %\nrepeat until <(done?) = [1]>\n    switch costume to (0 v)\nend\nshow\nforever\n    set [ghost v] effect to (100)\n    switch costume to ((level) + (1))\nend\n\nwhen flag clicked\nhide\ngo to x: (0) y: (-2)\nset [done? v] to [0]\nset [level v] to [1]\nset size to (100) %\n\nwhen I receive [menu v]\nswitch costume to (0 v)\n\n