Ninja Impostor Platformer ✨Mobile Friendly✨ #platform

Instructions: ✨ Welcome to my first official platform with 16 levels! ✨\nAfter 2 weeks of work, a ton of coding, and multiple design concepts... I present to you "The Ninja Impostor Platformer!" || Ninja 2 is coming! Profile for details! :D ||\n                             || Controls ||\n                  || Press "T" to show timer ||\n                  || Press "S" to skip a level ||\n                 || Press "R" to retry a level ||\n             || Arrow keys or WASD to move ||\n           || Drag and hold for mobile players ||\n                              \n                                 || Story ||\nYou suddenly get teleported in this mysterious dimension, there's an instructor preparing you for the obstacles ready to come, but as levels progress, things start to get darker, and your instructor starts to become cursed. Can you escape? 

@Stage\n\nwhen flag clicked\nset [see inside v] to [0]\nset [mouse x v] to [-240]\nset [mouse y v] to [180]\nwait until <(Level) = [16]>\nforever\n    if <<<(mouse x) = [240]> and <(mouse y) = [180]>> and <(mouse x) < [30]>> then\n        broadcast (uh v)\n        broadcast (0 v)\n        set [see inside v] to [2]\n        switch backdrop to (backdrop 17 v)\n        play sound [Sussus Moogus v] until done\n        play sound [Sussus Moogus v] until done\n    end\n    set [mouse x v] to (mouse x)\n    set [mouse y v] to (mouse y)\nend\n\nwhen I receive [next level v]\nnext backdrop\n\nwhen flag clicked\nswitch backdrop to (backdrop 1 v)\n\nwhen I receive [next level v]\nif <(backdrop [number v]) = [12]> then\n    broadcast (Dark Cloud... v)\nend\n\nwhen I receive [. v]\nswitch backdrop to (backdrop 1 v)\nrepeat until <(Timer Show) = [50]>\n    change [time v] by (1)\n    wait (1) seconds\nend\nif <<(Timer Show) = [50]> and <(Timer show 2) = [50]>> then\n    hide variable [time v]\nelse\n    show variable [time v]\n    show variable [☁ high score v]\n    if <(☁ High Score) > (Time)> then\n        set [☁ high score v] to (Time)\n    end\nend\n\nwhen flag clicked\nhide variable [time v]\nhide variable [☁ high score v]\nset [timer show v] to [0]\nset [time v] to [0]\nset [timer show 2 v] to [0]\nhide variable [☁ high score owner v]\n\nwhen I receive [finally over :d v]\nset [timer show v] to [50]\n\nwhen I receive [.... v]\nset [timer show 2 v] to [50]\nhide variable [time v]\n\nwhen I receive [. v]\nrepeat until <(Timer show 2) = [50]>\n    if <key (t v) pressed?> then\n        show variable [time v]\n    end\nend\nhide variable [time v]\n\n@Dead Screen\n\nwhen I receive [alert v]\nshow\ngo to [front v] layer\nset [ghost v] effect to (100)\nrepeat (5)\n    change [ghost v] effect by (-20)\nend\nrepeat (5)\n    change [ghost v] effect by (20)\nend\n\nwhen flag clicked\nrepeat (2)\n    hide\nend\n\nwhen I receive [. v]\nset [thing v] to [1]\n\n@Ninja Character\n\ndefine Word (text) for (number) seconds\nset [letter v] to [1]\ndelete all of [words v]\nrepeat (length of (text))\n    add (letter (letter) of (text)) to [words v]\n    change [letter v] by (1)\n    say (Words)\n    start sound [Finger Snap v]\nend\nwait (number) seconds\nsay []\n\ndefine Among Us Movement\nforever\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        change [x v] by (1)\n        switch costume to (ninja \(right\) v)\n    end\n    if <<<touching (obstacle v)?> or <<touching color (#ff0000)?> or <touching color (#a20000)?>>> or <<touching (lava! v)?> or <<touching (red spike v)?> or <touching (metal spikes v)?>>>> then\n        broadcast (alert v)\n        go to x: (-207) y: (-77)\n    end\n    if <<touching (ground v)?> or <touching (moving platform v)?>> then\n        change y by (1)\n        if <<touching (ground v)?> or <touching (moving platform v)?>> then\n            change y by (1)\n            if <<touching (ground v)?> or <touching (moving platform v)?>> then\n                change y by (1)\n                if <<touching (ground v)?> or <touching (moving platform v)?>> then\n                    change y by (1)\n                    if <<touching (ground v)?> or <touching (moving platform v)?>> then\n                        change y by (1)\n                        if <<touching (ground v)?> or <touching (moving platform v)?>> then\n                            change x by ((x) * (-1))\n                            change y by (-1)\n                            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > [0]>>> then\n                                if <(x) > [0]> then\n                                    set [x v] to [-10]\n                                else\n                                    set [x v] to [10]\n                                end\n                            else\n                                set [x v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [y v] by (-1)\n    change y by (y)\n    if <<touching (ground v)?> or <touching (moving platform v)?>> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n        change [x v] by (-1)\n        switch costume to (ninja \(left\) v)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <(x position) > [216]> then\n        broadcast (Next level v)\n        change [level v] by (1)\n        wait (0.00000001) seconds\n        go to x: (-207) y: (-77)\n    end\n    change y by (-1)\n    if <<touching (ground v)?> or <touching (moving platform v)?>> then\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > [0]>>> then\n            set [y v] to [15]\n        end\n    end\n    if <touching (trampoline v)?> then\n        set [y v] to [20]\n    end\n    if <key (s v) pressed?> then\n        if <(Level) < [16]> then\n            wait until <<(Level) = [1]> or <(Level) > [1]>>\n            wait (0.2) seconds\n            change [level v] by (1)\n            broadcast (Next level v)\n            go to x: (-207) y: (-77)\n            broadcast (.... v)\n        end\n    end\nend\n\nwhen flag clicked\nhide\npoint in direction (90)\nset [level v] to [1]\nswitch costume to (ninja \(right\) v)\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-203) y: (240)\nforever\n    Among Us Movement\nend\n\nwhen I start as a clone\nswitch costume to (trail v)\nrepeat (40)\n    change [ghost v] effect by (8.7)\n    change size by (-2)\nend\ndelete this clone\n\nwhen flag clicked\nshow\nforever\n    create clone of (_myself_ v)\nend\n\nwhen [r v] key pressed\ngo to x: (-207) y: (-77)\n\nwhen I receive [. v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nwait (0.4) seconds\nswitch costume to (ninja \(right\) v)\ngo to x: (-203) y: (240)\nshow\nwait (1) seconds\nbroadcast (... v)\nWord [Where am I? What is this place?] for [2] seconds\n\nwhen I receive [finally over :d v]\nwait (2) seconds\nWord [Click "See Inside" to see a secret level :D] for [5] seconds\n\n@Ground\n\nwhen I receive [next level v]\nwait until <(thing) = [1]>\nwait (0.0000001) seconds\nnext costume\nif <(costume [number v]) = [2]> then\n    broadcast (Spikes! v)\nend\nif <(costume [number v]) = [5]> then\n    broadcast (lava show v)\nend\nif <(costume [number v]) = [6]> then\n    broadcast (lava show2 v)\nend\nif <(costume [number v]) = [7]> then\n    broadcast (Mysterious Uphill v)\nend\nif <(costume [number v]) = [9]> then\n    broadcast (Crushers v)\nend\nif <(costume [number v]) = [10]> then\n    broadcast (Blue Spikes!! v)\nend\nif <(costume [number v]) = [11]> then\n    broadcast (Mysterious Gravity v)\nend\nif <(costume [number v]) = [13]> then\n    broadcast (Spiky-Hiky?? v)\nend\nif <(costume [number v]) = [14]> then\n    broadcast (Normal v)\nend\nif <(costume [number v]) = [15]> then\n    broadcast (Mind Control v)\nend\nif <(costume [number v]) = [16]> then\n    broadcast (Finally Over :D v)\nend\n\nwhen flag clicked\nset [thing 2 v] to [0]\nhide\n\nwhen I receive [. v]\nswitch costume to (level 1 v)\nshow\n\nwhen I receive [. v]\nset [thing v] to [1]\nswitch costume to (level 1 v)\n\nwhen I receive [. v]\nwait (0.059) seconds\nif <(Level) = [2]> then\n    set [level v] to [1]\n    switch costume to (level 1 v)\n    broadcast (u v)\nend\n\n@Red Spike\n\nwhen flag clicked\nhide\n\nwhen I receive [spikes! v]\nhide\n\nwhen I receive [next level v]\nwait (0.00001) seconds\nif <(Level) = [3]> then\n    go to x: (-116) y: (27)\n    set size to (100) %\n    show\nend\nif <(Level) = [4]> then\n    hide\n    set size to (50) %\n    switch costume to (costume 1 v)\nend\nif <(Level) = [8]> then\n    broadcast (Cloud Hide v)\n    point in direction (90)\n    switch costume to (costume 5 v)\n    go to x: (124) y: (-26)\n    go to [back v] layer\n    show\nend\n\nwhen I receive [lava show2 v]\nswitch costume to (costume 3 v)\ngo to x: (2) y: (79)\nshow\ngo to [back v] layer\n\nwhen I receive [mysterious uphill v]\npoint in direction (70)\nswitch costume to (costume 4 v)\ngo to [back v] layer\ngo to x: (-50) y: (-37)\n\nwhen I receive [crushers v]\nshow\ngo to x: (-30) y: (-28)\npoint in direction (90)\nswitch costume to (costume 6 v)\ngo to [back v] layer\n\nwhen I receive [blue spikes!! v]\ngo to [back v] layer\nswitch costume to (blue spike  v)\ngo to x: (-34) y: (-24)\nshow\n\nwhen I receive [mysterious gravity v]\nhide\n\nwhen I receive [dark cloud... v]\nswitch costume to (metal spike v)\ngo to x: (10) y: (-22)\ngo to [back v] layer\nshow\n\nwhen I receive [spiky-hiky?? v]\nhide\n\nwhen I receive [. v]\npoint in direction (90)\ngo to [back v] layer\ngo [forward v] (5) layers\nswitch costume to (costume 1 v)\nset size to (50) %\nshow\ngo to x: (-184) y: (-34)\n\nwhen I receive [u v]\npoint in direction (90)\ngo to [back v] layer\ngo [forward v] (5) layers\nswitch costume to (costume 1 v)\nset size to (50) %\nshow\ngo to x: (-184) y: (-34)\n\n@Obstacle\n\nwhen flag clicked\nhide\n\nwhen I receive [spikes! v]\nhide\n\nwhen I receive [lava show v]\nswitch costume to (costume 1 v)\ngo to x: (36) y: (-11)\nshow\nif <(Level) = [6]> then\n    hide\nend\n\nwhen I receive [lava show2 v]\nhide\n\nwhen I receive [next level v]\nif <(Level) = [4]> then\n    switch costume to (costume 2 v)\n    go to x: (19) y: (-51)\n    show\nend\nif <(Level) = [8]> then\n    switch costume to (costume 3 v)\n    go to [back v] layer\n    go to x: (-12) y: (-57)\n    show\nend\n\nwhen I receive [crushers v]\ngo to [back v] layer\nset size to (90) %\ngo to x: (-35) y: (-72)\nswitch costume to (crusher v)\nshow\nrepeat until <(Level) = [10]>\n    glide (0.5) secs to x: (-35) y: (51)\n    wait (0.5) seconds\n    glide (0.5) secs to x: (-35) y: (-76)\n    wait (0.5) seconds\nend\n\nwhen I receive [blue spikes!! v]\nswitch costume to (blue spikes v)\nrepeat until <(Level) > [10]>\n    go to [back v] layer\n    switch costume to (blue spikes v)\n    go to x: (-35) y: (-76)\n    glide (1) secs to x: (-35) y: (5)\n    glide (1) secs to x: (-35) y: (-76)\nend\n\nwhen I receive [mysterious gravity v]\nhide\n\nwhen I receive [dark cloud... v]\ngo to [back v] layer\nswitch costume to (saw v)\ngo to x: (13) y: (-95)\nshow\nwait (0.001) seconds\nbroadcast (Rotation v)\nforever\n    glide (0.85) secs to x: (125) y: (-95)\n    glide (0.85) secs to x: (-120) y: (-95)\nend\n\nwhen I receive [rotation v]\nforever\n    turn right (20) degrees\nend\n\nwhen I receive [spiky-hiky?? v]\nhide\n\nwhen I receive [. v]\nset size to (40) %\npoint in direction (90)\nswitch costume to (costume 1 v)\ngo to [back v] layer\ngo [forward v] (1) layers\ngo to x: (-3) y: (-16)\nshow\n\nwhen I receive [u v]\nset size to (40) %\npoint in direction (90)\nswitch costume to (costume 1 v)\ngo to [back v] layer\ngo [forward v] (1) layers\ngo to x: (-3) y: (-16)\nshow\n\n@Lava!\n\nwhen flag clicked\nhide\n\nwhen I receive [spikes! v]\nshow\n\nwhen I receive [lava hide v]\nhide\n\nwhen I receive [lava show v]\nswitch costume to (costume 2 v)\ngo to x: (6) y: (-90)\nshow\n\nwhen I receive [lava show2 v]\ngo to [back v] layer\ngo to x: (20) y: (-86)\nswitch costume to (costume 3 v)\nshow\n\nwhen I receive [mysterious uphill v]\nhide\n\nwhen I receive [mysterious gravity v]\nset size to (100) %\nswitch costume to (costume 4 v)\ngo to [back v] layer\nshow\nrepeat until <(Level) = [12]>\n    go to x: (20) y: (-86)\n    glide (5) secs to x: (20) y: (-59)\n    glide (3) secs to x: (20) y: (-86)\nend\nhide\n\nwhen I receive [u v]\nhide\n\nwhen I receive [. v]\nhide\ngo to [back v] layer\nset size to (50) %\nswitch costume to (costume 1 v)\ngo to x: (26) y: (-13)\n\n@Moving Platform\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nwait until <(thing) = [1]>\nwait (0.000000001) seconds\nif <(Level) = [3]> then\n    go to x: (39) y: (-4)\n    broadcast (lava hide v)\n    switch costume to (costume 1 v)\n    go to [front v] layer\n    go [backward v] (2) layers\n    show\n    repeat until <(Level) = [4]>\n        forever\n            glide (1) secs to x: (39) y: (-60)\n            wait (0.2) seconds\n            glide (1) secs to x: (39) y: (8)\n            wait (0.2) seconds\n        end\n    end\nend\nif <(Level) = [4]> then\n    next costume\n    go to x: (-18) y: (89)\n    show\n    go to [front v] layer\n    go [backward v] (2) layers\n    repeat until <(Level) = [5]>\n        glide (1) secs to x: (130) y: (89)\n        wait (1.2) seconds\n        glide (1) secs to x: (-18) y: (89)\n        wait (1.2) seconds\n    end\nend\nif <(Level) = [5]> then\n    hide\nend\n\nwhen I receive [. v]\nhide\n\n@Trampoline\n\nwhen flag clicked\nhide\ngo to x: (-163) y: (-79)\n\nwhen I receive [next level v]\nif <(Level) = [4]> then\n    go to [back v] layer\n    show\nend\nif <(Level) = [5]> then\n    hide\nend\n\nwhen I receive [cloud hide v]\nset size to (40) %\nswitch costume to (costume 2 v)\ngo to x: (-140) y: (-116)\nshow\n\nwhen flag clicked\nhide\nswitch costume to (costume 1 v)\nset size to (100) %\ngo to x: (-147) y: (-78)\n\nwhen I receive [crushers v]\nhide\n\nwhen I receive [. v]\nif <(Level) = [1]> then\n    hide\nend\n\n@Metal Spikes\n\nwhen flag clicked\nhide\ngo to [back v] layer\ngo [forward v] (6) layers\nset size to (90) %\n\nwhen I receive [mysterious gravity v]\ngo to x: (-35) y: (-76)\nswitch costume to (metal spikes v)\nshow\n\nwhen I receive [dark cloud... v]\nhide\n\nwhen I receive [spiky-hiky?? v]\nswitch costume to (metal spikes 2 v)\ngo to x: (-35) y: (-76)\nshow\n\nwhen I receive [normal v]\nswitch costume to (metal spikes 3 v)\ngo to x: (-35) y: (-76)\npoint in direction (90)\nshow\n\nwhen I receive [mind control v]\ngo to x: (-35) y: (-76)\nswitch costume to (metal spikes 4 v)\nshow\n\nwhen I receive [finally over :d v]\nswitch costume to (metal spikes 5 v)\ngo to x: (-35) y: (-76)\nshow\n\n@Blank\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\nset [level v] to [0]\ngo to x: (34) y: (25)\nshow\nforever\n    go to [front v] layer\nend\n\n@Cloud\n\nwhen flag clicked\nhide\n\nwhen I receive [cloud glide v]\nforever\n    wait (1.2) seconds\n    next costume\nend\n\nwhen I receive [cloud hide v]\nhide\n\nwhen I receive [. v]\ngo to x: (-252) y: (96)\nswitch costume to (costume 1 v)\ngo [backward v] (1000000) layers\nshow\nbroadcast (Cloud Glide v)\nforever\n    glide (4) secs to x: (234) y: (96)\n    go to x: (-252) y: (96)\nend\n\n@Dark Cloud\n\nwhen flag clicked\nhide\n\nwhen I receive [cloud glide v]\nforever\n    wait (1.2) seconds\n    next costume\nend\n\nwhen I receive [cloud hide v]\nhide\n\nwhen I receive [dark cloud... v]\nshow\n\nwhen I receive [. v]\ngo to x: (-252) y: (96)\nswitch costume to (costume 1 v)\ngo [backward v] (1000000) layers\nhide\nbroadcast (Cloud Glide v)\nforever\n    glide (4) secs to x: (234) y: (96)\n    go to x: (-252) y: (96)\nend\n\n@Menu\n\nwhen flag clicked\nset [thing v] to [0]\ngo to [front v] layer\ngo [backward v] (4) layers\nshow\ngo to x: (42) y: (-3)\nforever\n    go to x: ((mouse x) / (80)) y: ((mouse y) / (80))\nend\n\nwhen I receive [. v]\nhide\n\nwhen flag clicked\nforever\n    repeat until <(thing) = [1]>\n        if <key (s v) pressed?> then\n            set [level v] to [1]\n        end\n    end\nend\n\n@Menu Button\n\nwhen flag clicked\nset [menu v] to [0]\nshow\ngo to [front v] layer\ngo [forward v] (10000000) layers\ncreate clone of (_myself_ v)\nforever\n    go to x: ((mouse x) / (90)) y: ((mouse y) / (90))\n    if <touching (mouse-pointer v)?> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\nwhen this sprite clicked\nbroadcast (. v)\nset [menu v] to [3]\nstart sound [Machine v]\nhide\n\nwhen I start as a clone\nhide\nforever\n    play sound [Sussus v] until done\nend\n\nwhen I receive [uh v]\ndelete this clone\n\n