✧ Abyss Pt.1 || A Platformer ✧ #Games

Instructions: Abyss pt.2 \nhttps://scratch.mit.edu/projects/463328003/\n\nShoutout:\n@-RDev- = Great scratcher but underrated :<\n@_-Celestian-_ = Great scratcher but underrated :(\nPlease follow them and read the description of my project + notes below.\n\nHey guys another platformer :D and I think it my best one!\nNow mobile friendly!\nThanks to @lilpigie for the awesome intro!??!?!\nFav & Heart for Pt.3!\n100 fav & Heart = Pt.3\nAll Levels are possible. \nMy first project on somewhat top trending!\n\nHow to play: \n- Arrow keys\n- WASD\n- Mobile: Tap on the screen to move\n- For those who rage quit: p to skip level\n- Avoid spikes, purple water, and moving saws\n\nDon't forget to: \n- Follow\n- Fav & Star\n- Share with friends!\n- Maybe even a feature?https://scratch.mit.edu/studios/4228481/\n\nCredits:\n- Thanks to @lilpigie for the awesome intro!??!?!\n- Youtube for sounds \n- My followers for loves & favs and you!\n- @_-Celestian-_ for the mobile controls tysm!\n- @_-Celestian-_ & @PianoApprentice for inspiration\n- @TimMcCool & @SuperCookii for inspiration\n- @TimMcCool for the detector\n\nTags[lol]:\n#games\n#all\n#platformers\n#platform\n#game\n#idk\n#what\n#am\n#I\n#doing\n#hi\n#everything\n#love\n#&\n#fav\n#&\n#follow\n#no-lol-xD

@Stage\n\nwhen I receive [introover v]\nswitch backdrop to (backdrop1 v)\n\n    play sound [ssssss v] until done\nend\n\nwhen flag clicked\nswitch backdrop to (backdrop2 v)\n\n@Player\n\nwhen I receive [start v]\nchange [☁ views v] by (1)\nset size to (100) %\nshow\ngo to [front v] layer\ngo to x: (-187) y: (-40)\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    repeat until <<<touching (danger v)?> or <touching (saws v)?>> or <touching (portal v)?>>\n        if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n            change [xv v] by (-1)\n        else\n            if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>>> then\n                change [xv v] by (1)\n            end\n        end\n        set [xv v] to ((Xv) * (.85))\n        change x by (Xv)\n        if <touching (ground v)?> then\n            change y by (1.2)\n            if <touching (ground v)?> then\n                change y by (1.2)\n                if <touching (ground v)?> then\n                    change y by (1.2)\n                    if <touching (ground v)?> then\n                        change y by (1.2)\n                        if <touching (ground v)?> then\n                            change y by (1.2)\n                            if <touching (ground v)?> then\n                                change x by ((Xv) * (-1))\n                                change y by (-5)\n                                if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n                                    set [yv v] to [10]\n                                    if <(Xv) > [0]> then\n                                        set [xv v] to [-5]\n                                    else\n                                        set [yv v] to [5]\n                                    end\n                                else\n                                    set [xv v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        if <<<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> or <(Yv) < [-5]>> then\n            change [yv v] by (-1)\n        else\n            change [yv v] by (-2)\n        end\n        change y by (Yv)\n        if <touching (ground v)?> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\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) + (10))>>>> and <touching (ground v)?>> then\n            change [yv v] by (12)\n        end\n        change y by (1)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume3 v)\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        switch costume to (costume v)\n    else\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            switch costume to (costume2 v)\n        else\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                switch costume to (costume5 v)\n            else\n                if <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n                    switch costume to (costume6 v)\n                else\n                    switch costume to (costume3 v)\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [level v] to [0]\nforever\n    if <<touching (saws v)?> or <touching (danger v)?>> then\n        start sound [Pop v]\n        goto\n        set [pixelate v] effect to (0)\n        set [ghost v] effect to (0)\n        set [brightness v] effect to (0)\n        set size to (100) %\n    end\nend\n\ndefine goto\ngo to x: (-187) y: (-40)\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nswitch costume to (costume4 v)\nrepeat (10)\n    change size by (-6)\n    change [ghost v] effect by (8)\nend\ndelete this clone\n\nwhen flag clicked\nset [level v] to [1]\nforever\n    if <touching (portal v)?> then\n        glide (0.5) secs to (portal v)\n        start sound [Connect v]\n        repeat (25)\n            change [brightness v] effect by (-4)\n            change [pixelate v] effect by (4)\n            change [ghost v] effect by (8)\n            change size by (-10)\n        end\n        wait (1) seconds\n        goto\n        change [level v] by (1)\n        set [pixelate v] effect to (0)\n        set [ghost v] effect to (0)\n        set [brightness v] effect to (0)\n        set size to (100) %\n        broadcast (NextLevel v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    if <key (p v) pressed?> then\n        set size to (90) %\n        go to (portal v)\n    end\nend\n\n@Ground\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen flag clicked\nhide\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(level) = [12]> then\n        broadcast (end v)\n    end\nend\n\nwhen I receive [introover v]\nshow\n\n@light\n\nwhen flag clicked\nhide\n\nwhen I receive [introover v]\nshow\ngo to [back v] layer\nset size to (200) %\nforever\n    go to (player v)\nend\n\nwhen I receive [introover v]\nforever\n    go to (player v)\nend\n\n@danger\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen I receive [introover v]\nshow\n\n@✧Thumbnail\n\nwhen I receive [introover v]\nhide\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nwait (2) seconds\nchange x by (0.2)\nrepeat (9)\n    change x by (x position)\nend\nbroadcast (start v)\nhide\n\nwhen flag clicked\nhide\n\n@Portal\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nrepeat until <(level) = [12]>\n    if <(costume [number v]) = [2]> then\n        show\n        forever\n            turn right (2) degrees\n        end\n    end\nend\nhide\ndelete this clone\n\nwhen I receive [end v]\nhide\n\nwhen I receive [introover v]\nshow\nswitch costume to (costume1 v)\ngo to x: (193) y: (-83)\ncreate clone of (_myself_ v)\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nswitch costume to (costume3 v)\n\nwhen I receive [introover v]\nrepeat until <(level) = [12]>\n    if <(costume [number v]) = [3]> then\n        show\n        forever\n            turn left (2) degrees\n        end\n    end\nend\nhide\ndelete this clone\n\n@DECO\n\nwhen flag clicked\nhide\ngo to [back v] layer\nswitch costume to (idk v)\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen I receive [introover v]\nshow\n\n@rain\n\ndefine new\nadd [180] to [y v]\nadd (pick random (-240) to (240)) to [x v]\nadd (pick random (2) to (6)) to [z v]\nadd (pick random (10) to (20)) to [s v]\n\ndefine render\nerase all\npen up\nset pen color to (#3f3d3d)\nset [i v] to [1]\nrepeat (length of [s v])\n    set pen size to (item (i) of [z v])\n    go to x: (item (i) of [x v]) y: (item (i) of [y v])\n    pen down\n    change y by ((0) - ((item (i) of [z v]) * (2)))\n    pen up\n    replace item (i) of [y v] with ((item (i) of [y v]) - (item (i) of [s v]))\n    if <(item (i) of [y v]) < [-179]> then\n        delete (i) of [s v]\n        delete (i) of [x v]\n        delete (i) of [y v]\n        delete (i) of [z v]\n    end\n    change [i v] by (1)\nend\n\nwhen I receive [introover v]\nset volume to (100) %\n\n    play sound [rain v] until done\nend\n\nwhen I receive [introover v]\nswitch costume to (n/a v)\ndelete (all) of [s v]\ndelete (all) of [x v]\ndelete (all) of [y v]\ndelete (all) of [z v]\n\n    render\n    if <(pick random (1) to (2)) = [1]> then\n        new\n    end\nend\n\n@lightning&thunder\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nforever\n    wait (pick random (10) to (25)) seconds\n    go to [front v] layer\n    show\n    start sound [thunder v]\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    hide\n    set [ghost v] effect to (0)\nend\n\nwhen I receive [nextlevel v]\nstart sound [thunder v]\ngo to [front v] layer\nshow\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nset [ghost v] effect to (0)\n\n@fav/follow\n\nwhen flag clicked\nset [costume v] to [0]\ngo to x: (116) y: (190)\nhide\nrepeat until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\n    wait (40) seconds\n    switch costume to (costume1 v)\n    go to x: (116) y: (190)\n    show\n    go to [front v] layer\n    start sound [pop v]\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (3)\n    end\n    repeat (5)\n        change y by (-1)\n    end\n    wait (2) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\nwhen I receive [start v]\nwait (1) seconds\nswitch costume to (costume1 v)\ngo to x: (116) y: (190)\nshow\ngo to [front v] layer\nstart sound [pop v]\nrepeat (9)\n    change y by (-6)\nend\nrepeat (5)\n    change y by (3)\nend\nrepeat (5)\n    change y by (-1)\nend\nwait (2) seconds\nrepeat (15)\n    change y by (7)\nend\nhide\n\nwhen I receive [loved&faved v]\nset [faved___ v] to [1]\nset [loved__ v] to [1]\nwait (0) seconds\nswitch costume to (costume2 v)\ngo to x: (116) y: (190)\nshow\ngo to [front v] layer\nstart sound [pop v]\nrepeat (9)\n    change y by (-6)\nend\nrepeat (5)\n    change y by (3)\nend\nrepeat (5)\n    change y by (-1)\nend\nwait (2) seconds\nrepeat (15)\n    change y by (7)\nend\nhide\n\n@saws\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen I receive [nextlevel v]\nnext costume\n\nwhen I receive [start v]\ngo to [back v] layer\nforever\n    if <(level) = [6]> then\n        set [rot velocity v] to [100]\n        go [forward v] (2) layers\n        go to x: (1) y: (-147)\n        repeat until <not <(level) = [6]>>\n            spin\n        end\n    else\n        if <(level) = [7]> then\n            set [rot velocity v] to [100]\n            go [forward v] (2) layers\n            go to x: (-50) y: (-130)\n            repeat until <not <(level) = [7]>>\n                spin\n            end\n        else\n            if <(level) = [8]> then\n                set [rot velocity v] to [100]\n                go [forward v] (2) layers\n                go to x: (-50) y: (-140)\n                repeat until <not <(level) = [8]>>\n                    repeat (30)\n                        change x by (5)\n                        turn right (15) degrees\n                    end\n                    repeat (30)\n                        change x by (-5)\n                        turn right (15) degrees\n                    end\n                end\n            else\n                if <(level) = [9]> then\n                    set [rot velocity v] to [100]\n                    go [forward v] (2) layers\n                    go to x: (-21) y: (-140)\n                    repeat until <not <(level) = [9]>>\n                        spin\n                    end\n                else\n                    if <(level) = [10]> then\n                        set [rot velocity v] to [100]\n                        go [forward v] (2) layers\n                        go to x: (-21) y: (-200)\n                        repeat until <not <(level) = [10]>>\n                            repeat (25)\n                                change y by (16)\n                                turn right (-15) degrees\n                            end\n                            repeat (25)\n                                change y by (-16)\n                                turn right (-15) degrees\n                            end\n                        end\n                    else\n                        if <(level) = [11]> then\n                            set [rot velocity v] to [100]\n                            go [forward v] (2) layers\n                            go to x: (100) y: (-200)\n                            repeat until <not <(level) = [11]>>\n                                repeat (25)\n                                    change y by (16)\n                                    turn right (-15) degrees\n                                end\n                                repeat (25)\n                                    change y by (-16)\n                                    turn right (-15) degrees\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine spin\npoint in direction ((([tan v] of ((timer) * (Rot Velocity)) ) * ((Rot Velocity) * (0.25))) + (80))\n\n@love&fave\n\nwhen I start as a clone\nshow\ngo to [front v] layer\nif <(pick random (1) to (5)) = [1]> then\n    switch costume to (costume1 v)\nend\nif <(pick random (1) to (5)) = [2]> then\n    switch costume to (costume1 v)\nend\nif <(pick random (1) to (5)) = [3]> then\n    switch costume to (costume2 v)\nend\nif <(pick random (1) to (5)) = [4]> then\n    switch costume to (costume2 v)\nend\nif <(pick random (1) to (5)) = [5]> then\n    switch costume to (costume1 v)\nend\nchange [ghost v] effect by (pick random (40) to (80))\nset size to (pick random (2) to (10)) %\ngo to x: (pick random (-240) to (240)) y: (180)\nglide (pick random (2) to (10)) secs to x: (pick random (-240) to (240)) y: (-180)\ndelete this clone\n\nwhen I receive [loved&faved v]\nhide\nrepeat (70)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nhide\n\n@detector\n\nwhen flag clicked\nhide\nset [clone id v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\nbroadcast (loved&faved v)\n\nwhen I start as a clone\nif <(clone id) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved__ v] to [0]\n    switch costume to (love v)\n    forever\n        set [love? v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            wait (0.2) seconds\n            if <touching (mouse-pointer v)?> then\n                set [loved__ v] to [1]\n            end\n        end\n    end\nend\nif <(clone id) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (fave v)\n    set [faved___ v] to [0]\n    forever\n        set [fav v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            wait (0.2) seconds\n            if <touching (mouse-pointer v)?> then\n                set [faved___ v] to [1]\n            end\n        end\n    end\nend\n\n@rain2\n\ndefine new\nadd [180] to [y v]\nadd (pick random (-240) to (240)) to [x v]\nadd (pick random (2) to (6)) to [z v]\nadd (pick random (10) to (20)) to [s v]\n\ndefine render\nerase all\npen up\nset pen color to (#3f3d3d)\nset [i v] to [1]\nrepeat (length of [s v])\n    set pen size to (item (i) of [z v])\n    go to x: (item (i) of [x v]) y: (item (i) of [y v])\n    pen down\n    change y by ((0) - ((item (i) of [z v]) * (2)))\n    pen up\n    replace item (i) of [y v] with ((item (i) of [y v]) - (item (i) of [s v]))\n    if <(item (i) of [y v]) < [-179]> then\n        delete (i) of [s v]\n        delete (i) of [x v]\n        delete (i) of [y v]\n        delete (i) of [z v]\n    end\n    change [i v] by (1)\nend\n\nwhen I receive [introover v]\nset volume to (100) %\n\n    play sound [rain v] until done\nend\n\nwhen I receive [introover v]\nerase all\nswitch costume to (n/a v)\ndelete (all) of [s v]\ndelete (all) of [x v]\ndelete (all) of [y v]\ndelete (all) of [z v]\n\n    render\n    if <(pick random (1) to (2)) = [1]> then\n        new\n    end\nend\n\nwhen flag clicked\nerase all\n\n@Intro\n\nwhen flag clicked\nhide\nreset timer\nstart sound [20syl & Mr. J. Medeiros - Disarm3 v]\nset [id v] to [Back]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(ID) = [Back]> then\n    switch costume to (back v)\n    show\n    set size to (20) %\n    set [ghost v] effect to (100)\n    go to x: (0) y: (300)\n    point in direction (45)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n        change size by (((100) - (size)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change y by (((0) - (y position)) / (5))\n    end\n    set [id v] to [Logo]\n    create clone of (_myself_ v)\n    wait until <(timer) > [7]>\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    wait (0.04) seconds\n    broadcast (IntroOver v)\nend\n\nwhen I start as a clone\nif <(ID) = [Logo]> then\n    switch costume to (logo v)\n    show\n    set size to (20) %\n    set [ghost v] effect to (100)\n    go to [front v] layer\n    go to x: (0) y: (-300)\n    point in direction (30)\n    wait (0.5) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n        change size by (((100) - (size)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change y by (((0) - (y position)) / (5))\n    end\n    Particles [15]\n    set size to (50) %\n    repeat (10)\n        change size by (((100) - (size)) / (5))\n    end\n    Particles [15]\n    set size to (50) %\n    repeat (10)\n        change size by (((100) - (size)) / (5))\n    end\n    wait (0.85) seconds\n    point in direction (90)\n    repeat (47)\n        point in direction ((([tan v] of ((timer) * (100)) ) * (10)) + (90))\n    end\n    point in direction (90)\n    wait (0.5) seconds\n    set [i v] to [1]\n    repeat (20)\n        change size by (-1.7)\n        change y by (I)\n        turn left (2) degrees\n        change [i v] by ([abs v] of ((I) / (3)) )\n        change [ghost v] effect by (7)\n    end\nend\n\ndefine Particles (amount)\nrepeat (amount)\n    set [id v] to [Particles]\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(ID) = [Particles]> then\n    switch costume to (pick random (3) to (4))\n    set size to (pick random (56) to (111)) %\n    set [ghost v] effect to (pick random (0) to (30))\n    set [brightness v] effect to (pick random (-30) to (30))\n    go to x: (0) y: (0)\n    point in direction (pick random (-180) to (180))\n    set [i v] to (pick random (10.) to (12.))\n    set [s v] to (pick random (2.) to (9.))\n    go to [back v] layer\n    go [forward v] (15) layers\n    show\n    repeat until <touching (_edge_ v)?>\n        move (i) steps\n        change y by (S)\n        change [s v] by (-0.4)\n        set [i v] to ((i) * (0.95))\n    end\n    delete this clone\nend\n\n