Life || Mobile Scrolling Platformer

Instructions: =====Info=====\nTOP LOVED OWO, then TOP REMIXED\nRed Ninja 2: https://scratch.mit.edu/projects/402521703/\nRed Ninja 3: https://scratch.mit.edu/projects/402980379/\nRed Ninja 4: https://scratch.mit.edu/projects/404940060/\nRed Ninja 5: https://scratch.mit.edu/projects/406739724/\nWelcome to my new game! The Red Ninja. It might lag occasionally on slow devices because of too many clones, but still, enjoy! This is also mobile friendly.\n=====Controls=====\nMove and Swim || Arrow keys or mobile tap\nShoot || Space or “Use weapon” button\nSwitch Weapon || Z or “Switch weapon” button\nAll levels are possible!

@Stage\n\nwhen I receive [1 v]\nforever\n    play sound [Undertale OST 072 - Song That Might Play When You Fight Sans v] until done\nend\n\nwhen I receive [end v]\nrepeat (50)\n    change volume by (-2)\nend\n\nwhen I receive [dead v]\nrepeat (50)\n    change volume by (-2)\nend\n\nwhen flag clicked\nset volume to (100) %\n\n@player\n\nwhen flag clicked\nset [game v] to [1]\nset [ghost v] effect to (0)\nshow\ngo to x: (-200) y: (-108)\nset [x v] to [0]\nset [y v] to [0]\nforever\n    if <(game) = [1]> then\n        if <key (right arrow v) pressed?> then\n            change [x v] by (0.7)\n        end\n        if <key (left arrow v) pressed?> then\n            change [x v] by (-0.7)\n        end\n        change x by (X)\n        set [x v] to ((X) * (0.9))\n        if <touching (level v)?> then\n            change y by (0.5)\n            if <touching (level v)?> then\n                change y by (0.5)\n                if <touching (level v)?> then\n                    change y by (0.5)\n                    if <touching (level v)?> then\n                        change y by (0.5)\n                        if <touching (level v)?> then\n                            change y by (0.5)\n                            if <touching (level v)?> then\n                                change y by (0.5)\n                                if <touching (level v)?> then\n                                    change y by (0.5)\n                                    if <touching (level v)?> then\n                                        change y by (0.5)\n                                        if <key (up arrow v) pressed?> then\n                                            if <[0] < (X)> then\n                                                set [x v] to [-7]\n                                            else\n                                                set [x v] to [7]\n                                            end\n                                            set [y v] to [10]\n                                        else\n                                            set [x v] to ((X) * (-1.3))\n                                            change x by (X)\n                                            set [x v] to [0]\n                                            change x by ((X) / (5))\n                                        end\n                                        change y by (-4)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        change [y v] by (-0.5)\n        change y by (Y)\n        if <touching (level v)?> then\n            set [y v] to ((Y) * (-0.25))\n            change y by (Y)\n            if <touching (level v)?> then\n                change y by (Y)\n                if <touching (level v)?> then\n                    change y by (Y)\n                    if <touching (level v)?> then\n                        change y by (Y)\n                    end\n                end\n            end\n        end\n        change y by (-1)\n        if <<key (up arrow v) pressed?> and <touching (level v)?>> then\n            set [y v] to [10]\n        end\n        change y by (1)\n        if <key (down arrow v) pressed?> then\n            switch costume to (costume1 v)\n        else\n            switch costume to (costume v)\n        end\n    end\nend\n\nset [game v] to [0]\n\nwhen I receive [next v]\nset [x v] to [0]\nset [y v] to [0]\nwait (0.01) seconds\ngo to x: (-179) y: (-108)\n\nbroadcast (start2 v)\n\nset [game v] to [1]\n\nwait (0.1) seconds\n\nset [x v] to [0]\nset [y v] to [0]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ngo to x: (-200) y: (-108)\nbroadcast (oof v)\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    if <<touching (saws v)?> or <<touching (crusher v)?> or <<touching (spike v)?> or <touching (wall v)?>>>> then\n        broadcast (oof v)\n        wait (1) seconds\n    end\nend\n\n@Text\n\ndefine (text) at (x) (y) with color (red/white) with sound (value)\nset [ghost v] effect to (0)\ngo to x: (x) y: (y)\nset [i v] to [1]\nrepeat (length of (text))\n    if <(red/white) = [red]> then\n        set [brightness v] effect to (50)\n        if <not <(costume [number v]) = [1]>> then\n            start sound (value)\n        end\n    else\n        if <(red/white) = [gray]> then\n            set [brightness v] effect to ()\n            if <not <(costume [number v]) = [1]>> then\n                start sound (value)\n            end\n        else\n            set [brightness v] effect to (-100)\n            if <not <(costume [number v]) = [1]>> then\n                start sound (value)\n            end\n        end\n    end\n    set [letter v] to (letter (i) of (text))\n    change [i v] by (1)\n    switch costume to (null v)\n    switch costume to (letter)\n    if <(costume [number v]) = [1]> then\n        switch costume to (join (letter) [_])\n    end\n    create clone of (_myself_ v)\n    change x by (16)\n    if <(letter (i) of (text)) = [@]> then\n        set x to (-180)\n        change y by (-30)\n    end\n    wait () seconds\nend\nif <(tak) = [1]> then\n    wait (0) seconds\nend\n\nbroadcast (zrtext v) and wait\n\nbroadcast (zrtext v) and wait\n\nbroadcast (zrtext v) and wait\n\nwhen I start as a clone\nset [brightness v] effect to (-50)\nshow\ngo to [front v] layer\nwait until <(i) = [0]>\ndelete this clone\n\nwhen flag clicked\nset [tak v] to [1]\n\nwhen I receive [zrtext v]\ndelete this clone\n\nswitch backdrop to (backdrop2 v)\n\nwhen flag clicked\nset [i v] to [1]\n[Hello there. @\(Press Z\)] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nset [i v] to [1]\n[You haven't been@ here before.] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nset [i v] to [1]\n[That's fine.] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nset [i v] to [1]\n[You won't stand@ a chance either@ way.] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nset [i v] to [1]\n[Get ready.] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nbroadcast (1 v)\nbroadcast (1 v)\n\nwhen I receive [5 v]\nset [i v] to [1]\n[You think this@ is the best I can@ do?] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nset [i v] to [1]\n[I'm only getting@ started.] at [-145] [125] with color [red] with sound [1]\nset [i v] to [0]\nwait until <key (z v) pressed?>\nbroadcast (zrtext v)\nbroadcast (6 v)\n\n@saws\n\nwhen I receive [1 v]\nwait (0.5) seconds\nset size to (100) %\nshow\ngo to x: (112) y: (204)\nrepeat (40)\n    change y by (-10)\n    turn right (10) degrees\nend\nhide\nbroadcast (2 v)\nbroadcast (fade v)\n\nwhen flag clicked\nhide\n\nwhen I receive [4 v]\nset size to (80) %\nshow\ngo to x: (-261) y: (-115)\nrepeat (80)\n    change x by (7)\n    turn right (10) degrees\nend\nhide\nbroadcast (5 v)\nbroadcast (fade v)\n\n@crusher\n\nwhen flag clicked\nhide\nset [ghost v] effect to (0)\n\nwhen I receive [2 v]\nwait (0.5) seconds\nswitch costume to (costume1 v)\nshow\ngo to x: (-105) y: (51)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (1) seconds\nrepeat (12)\n    change y by (-10)\nend\nwait (1) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nbroadcast (3 v)\n\nwhen I receive [6 v]\nswitch costume to (costume2 v)\nshow\ngo to x: (0) y: (51)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.5) seconds\nrepeat (12)\n    change y by (-10)\nend\nwait (1) seconds\nbroadcast (6.5 v)\nbroadcast (fade v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nwait (0.5) seconds\nset [ghost v] effect to (0)\nshow\nswitch costume to (costume3 v)\ngo to x: (-239) y: (-71)\nrepeat (30)\n    change x by (15)\nend\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\nwait (1) seconds\nshow\nset [ghost v] effect to (0)\nswitch costume to (costume4 v)\nrepeat (30)\n    change x by (-15)\nend\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\nbroadcast (7 v)\n\n@level\n\nwhen flag clicked\ngo to [front v] layer\n\n@spike\n\nwhen I receive [3 v]\nswitch costume to (costume1 v)\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.5) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.5) seconds\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.5) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.5) seconds\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.5) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.5) seconds\nbroadcast (4 v)\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\ngo to (random position v)\n\nwhen I receive [7 v]\nwait (1) seconds\nswitch costume to (costume2 v)\ngo to x: (0) y: (165)\npoint in direction (90)\nset [ghost v] effect to (0)\nshow\nrepeat (40)\n    change y by (-10)\nend\nhide\nbroadcast (7.5 v)\nbroadcast (fade v)\nwait (1) seconds\nshow\nswitch costume to (costume3 v)\ngo to x: (0) y: (165)\npoint in direction (90)\nset [ghost v] effect to (0)\nshow\nrepeat (40)\n    change y by (-10)\nend\nhide\nbroadcast (8 v)\nbroadcast (fade v)\n\nwhen I receive [9 v]\nset [ghost v] effect to (100)\nswitch costume to (costume1 v)\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.2) seconds\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.2) seconds\ngo to x: (pick random (100) to (-100)) y: (pick random (100) to (0))\npoint towards (player v)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (0.2) seconds\nrepeat until <touching (_edge_ v)?>\n    move (20) steps\nend\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nwait (0.5) seconds\nbroadcast (10 v)\n\nwhen I receive [11 v]\nwait (0.5) seconds\nswitch costume to (costume4 v)\nshow\nset [ghost v] effect to (0)\npoint in direction (90)\ngo to x: (0) y: (-175)\nrepeat (17)\n    change y by (2)\nend\nwait (0.2) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwait (1) seconds\n\n@wall\n\nwhen I receive [8 v]\nswitch costume to (costume1 v)\nshow\ngo to x: (225) y: (-161)\npoint in direction (90)\nwait (1) seconds\nrepeat (20)\n    turn left (4.5) degrees\nend\nwait (1) seconds\nhide\nbroadcast (9 v)\n\nwhen flag clicked\nhide\n\nwhen I receive [10 v]\npoint in direction (90)\nshow\nswitch costume to (costume2 v)\ngo to x: (254) y: (0)\nrepeat (50)\n    change x by (-10)\nend\nhide\nwait (1) seconds\nbroadcast (11 v)\n\n@warning\n\nwhen I receive [1 v]\nset [ghost v] effect to (100)\nshow\nswitch costume to (costume1 v)\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen flag clicked\nset [ghost v] effect to (50)\ngo to [back v] layer\nhide\n\nwhen I receive [2 v]\nwait (0.5) seconds\nswitch costume to (costume2 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [3 v]\nhide\n\nwhen I receive [4 v]\nshow\nswitch costume to (costume3 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [7 v]\nshow\nrepeat (5)\n    change [ghost v] effect by (10)\nend\nswitch costume to (costume6 v)\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [6 v]\nswitch costume to (costume4 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [6.5 v]\nwait (0.5) seconds\nswitch costume to (costume5 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [fade v]\nrepeat (5)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [7.5 v]\nwait (0.5) seconds\nswitch costume to (costume7 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [8 v]\nwait (0.5) seconds\nswitch costume to (costume8 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\nwait (1.5) seconds\nrepeat (5)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [11 v]\nswitch costume to (costume9 v)\nset [ghost v] effect to (100)\nshow\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\nwait (1.2) seconds\nrepeat (5)\n    change [ghost v] effect by (10)\nend\nbroadcast (end v)\n\n@hp\n\nwhen flag clicked\ngo to [front v] layer\nswitch costume to (costume1 v)\ngo to x: (193) y: (158)\nforever\n    if <(costume [number v]) = [4]> then\n        broadcast (dead v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [oof v]\nnext costume\nrepeat (10)\n    go to x: (pick random (192) to (194)) y: (pick random (157) to (159))\nend\ngo to x: (193) y: (158)\n\n@thing\n\nwhen I receive [end v]\ngo to [front v] layer\nshow\nswitch costume to (costume1 v)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nplay sound [Tada v] until done\nstop [all v]\n\nwhen flag clicked\nhide\n\nwhen I receive [dead v]\ngo to [front v] layer\nshow\nswitch costume to (costume2 v)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nstop [all v]\n\n@thumb\n\nwhen flag clicked\nhide\n\ngo to [front v] layer\nshow\n\n