Troll platformer

Instructions: Darkness to Rise\n___________________________________________\nAfter a year in the making, this game is finally here :)\nThis was mostly cuz I haven't been working on this project consistently. The demo was posted a year ago. \n___________________________________________\n5/1/23 - 3rd page on trending!?!\n5/17/23 - Thx for over 1k likes :D\nCONTROLS:\n\n-Arrow keys\n-WASD\n-Mobile Friendly\n\nTIPS:\n\nI realize that this game might be a little challenging for those who are new to platformers on scratch. Here are some tips to help you.\n\nLevel 8 dips down into a small jump. When taking this jump, remember that the slope will make it so that when you move forward, you might not be able to jump. My tip is that instead of holding --> and then ^. Start with ^ so the slope doesn't interfere with the jump.\n\nLevel 12 is very tricky. Two blades of the saw are particularly larger than the others. Time it right so that you slip past the big blades and go into the small hole. Time it again so that you jump without hitting the two blades.\n\nLevel 13 is the hardest level in the game. It will take precise timing to patiently move a small amount for each spike interval. There are no exact tips for this level except  to move slowly and take your time and move as soon as the top spikes go up.\n\nLevel 16 is Level 13 but easier.\n\nLevel 17 requires the same tactic as Level 13 but is easier to do. Jump when the two blades are facing away from you.\n\nLevel 18 stay at the very side of the level and wait for the saw to reach you. When it passes you, run as fast as you can to the other side if the level. This might take a couple of tries as it takes up much patience and timing to master.\n\nCREDITS:\n@TimMcCool lots of inspo and some of the plant art.\n@Chipm0nk for colored mountain background\n@Griffpatch for fogformer\n@Rest of the art by me

@Stage\n\nwhen flag clicked\nforever\n    play sound [Fortnite OST - Battle Royal Menu Music \(Rock Version\).mp3 v] until done\nend\n\n@Sprite2\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\n\nwhen I receive [start v]\nglide (1) secs to x: (0) y: (-30)\n\nwhen I receive [land v]\nhide\n\n@Sprite3\n\nwhen flag clicked\n\nwhen flag clicked\nshow\ngo [backward v] (100000) layers\ngo to x: (0) y: (0)\nrepeat (120)\n    change x by (-10)\n    wait (0.03) seconds\nend\nbroadcast (Start v)\n\nwhen I receive [land v]\nhide\n\n@Sprite4\n\nwhen I receive [start v]\nshow\nset [ghost v] effect to (100)\nrepeat (33)\n    change [ghost v] effect by (-3)\nend\n\nstop [this script v]\n\nwhen flag clicked\nhide\nforever\n    if <key (space v) pressed?> then\n        hide\n        broadcast (Land v)\n    end\nend\n\n@Sprite7\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [1]> then\n        hide\n        set [boom v] to [0]\n    else\n        if <(Level) = [2]> then\n            hide\n            set [boom v] to [0]\n        else\n            if <(Level) = [3]> then\n                hide\n                set [boom v] to [0]\n            else\n                if <(Level) = [4]> then\n                    hide\n                    set [boom v] to [0]\n                else\n                    if <(Level) = [5]> then\n                        switch costume to (costume2 v)\n                        go to x: (-205) y: (105)\n                        show\n                        set [boom v] to [1]\n                    else\n                        if <(Level) = [6]> then\n                            hide\n                            set [boom v] to [0]\n                        else\n                            if <(Level) = [7]> then\n                                hide\n                                set [boom v] to [0]\n                            else\n                                if <(Level) = [8]> then\n                                    switch costume to (costume4 v)\n                                    go to x: (121) y: (-64)\n                                    show\n                                    set [boom v] to [1]\n                                else\n                                    if <(Level) = [9]> then\n                                        hide\n                                        set [boom v] to [0]\n                                    else\n                                        if <(Level) = [10]> then\n                                            switch costume to (costume3 v)\n                                            go to x: (121) y: (-64)\n                                            show\n                                            set [boom v] to [1]\n                                        else\n                                            if <(Level) = [11]> then\n                                                set [boom v] to [0]\n                                                hide\n                                            else\n                                                set [boom v] to [0]\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [land v]\nset size to (35) %\nhide\n\nwhen flag clicked\nset rotation style [left-right v]\nforever\n    if <(PlayerX) > (x position)> then\n        point in direction (-90)\n    else\n        if <(PlayerX) < (x position)> then\n            point in direction (90)\n        end\n    end\nend\n\nset [boom v] to [0]\n\nswitch costume to (costume3 v)\ngo to x: (121) y: (-64)\nshow\n\nwhen I receive [win v]\nhide\n\n@Sprite9\n\nwhen flag clicked\nforever\n    switch costume to (costume1 v)\n    wait (0.1) seconds\n    switch costume to (costume5 v)\n    wait (0.1) seconds\n    switch costume to (costume6 v)\n    wait (0.1) seconds\n    switch costume to (costume7 v)\n    wait (0.1) seconds\nend\n\n@Sprite10\n\nwhen flag clicked\nset [level v] to [1]\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [land v]\nshow\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [levelup v]\nchange [level v] by (1)\n\nwhen I receive [win v]\nhide\n\n@Sprite5\n\nwhen flag clicked\nhide\n\nwhen I receive [land v]\ngo to [front v] layer\nset size to (35) %\nswitch costume to (costume1 v)\ngo to x: (-219) y: (-60)\npoint in direction (90)\nshow\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    change [yv v] by (-0.5)\n    if <key (right arrow v) pressed?> then\n        change [xv v] by (0.7)\n        point in direction (90)\n    end\n    if <key (left arrow v) pressed?> then\n        change [xv v] by (-0.7)\n        point in direction (-90)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n        change y by (1)\n        if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n            change y by (1)\n            if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n                change y by (1)\n                if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n                    change y by (1)\n                    if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n                        change y by (1)\n                        if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n                            change x by ((Xv) * (-1))\n                            change x by (-1)\n                            change y by (-5)\n                            change x by (1)\n                            if <key (up arrow v) pressed?> then\n                                start sound [jump v]\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-8]\n                                else\n                                    set [xv v] to [8]\n                                end\n                                set [yv v] to [10]\n                            else\n                                set [xv v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (Yv)\n    if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <<<touching color (#006622)?> or <touching color (#cccccc)?>> or <<touching color (#995900)?> or <touching color (#663b00)?>>> then\n        if <key (up arrow v) pressed?> then\n            start sound [jump v]\n            set [yv v] to [10]\n        end\n    end\n    change y by (1)\n    if <(x position) > [225]> then\n        point in direction (90)\n        go to x: (-219) y: (-60)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        broadcast (LevelUp v)\n    end\n    if <<touching color (#ff0000)?> or <touching color (#4a4a4a)?>> then\n        switch costume to (costume2 v)\n        start sound [bxsb v]\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        point in direction (90)\n        go to x: (-219) y: (-60)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        clear graphic effects\n        switch costume to (costume1 v)\n    end\n    if <touching color (#00ffff)?> then\n        if <key (up arrow v) pressed?> then\n            set [yv v] to [5]\n        else\n            if <key (down arrow v) pressed?> then\n                set [yv v] to [-5]\n            else\n                set [yv v] to [-1]\n            end\n        end\n    end\n    if <touching color (#005eba)?> then\n        broadcast (win v)\n        hide\n        stop [this script v]\n    end\n    if <(y position) < [-170]> then\n        switch costume to (costume2 v)\n        start sound [bxsb v]\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        point in direction (90)\n        go to x: (-219) y: (0)\n        set [yv v] to [0]\n        set [xv v] to [0]\n        clear graphic effects\n        switch costume to (costume1 v)\n    end\nend\n\nstart sound [next lvl v]\n\nwhen I receive [land v]\nforever\n    if <key (r v) pressed?> then\n        start sound [pop v]\n        switch costume to (costume1 v)\n        go to x: (-219) y: (-100)\n        point in direction (90)\n        set [xv v] to [0]\n        set [yv v] to [0]\n        wait until <not <key (r v) pressed?>>\n    end\nend\n\nwhen I receive [land v]\nforever\n    if <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>> then\n        next costume\n        wait (.1) seconds\n    else\n        switch costume to (costume2 v)\n    end\nend\n\n\n\ngo to x: (115) y: (-71)\n\ngo to x: (115) y: (-71)\n\nwhen flag clicked\nforever\n    set [playerx v] to (x position)\nend\n\n@Sprite1\n\nwhen flag clicked\nhide\nforever\n    go to (sprite7 v)\n    if <(Boom) = [1]> then\n        repeat until <(Boom) = [0]>\n            create clone of (_myself_ v)\n            wait (2) seconds\n        end\n    end\nend\n\nwhen I start as a clone\ngo to (sprite7 v)\nshow\npoint towards (sprite5 v)\nrepeat until <<<touching (sprite10 v)?> or <touching (sprite5 v)?>> or <touching (sprite6 v)?>>\n    move (10) steps\n    wait (.03) seconds\nend\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <(Boom) = [0]> then\n        delete this clone\n    end\nend\n\n@Sprite6\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (99)\n\n@Sprite8\n\nwhen flag clicked\nforever\n    if <(Level) = [3]> then\n        show\n        go to x: (-75) y: (-80)\n    else\n        if <(Level) = [6]> then\n            show\n            go to x: (174) y: (9)\n        else\n            if <(Level) = [7]> then\n                show\n                go to x: (90) y: (-89)\n            else\n                hide\n            end\n        end\n    end\nend\n\nwhen I receive [win v]\nhide\n\n@Sprite11\n\nwhen flag clicked\nforever\n    if <(Level) = [6]> then\n        show\n        go to x: (-123) y: (-78)\n    else\n        if <(Level) = [7]> then\n            show\n            go to x: (-101) y: (-89)\n        else\n            if <(Level) = [10]> then\n                show\n                go to x: (-101) y: (-89)\n            else\n                if <(Level) = [11]> then\n                    show\n                    go to x: (-101) y: (-89)\n                else\n                    hide\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [win v]\n\nhide\n\n@Winn\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [win v]\nshow\n\n@Sprite12\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\n