⚔️ᴅᴜɴɢᴇᴏɴ ǫᴜᴇsᴛ⚔️-A  mobile friendly platformer

Instructions: ⚔️Welcome to the dungeon⚔️\nControls:\narrow keys, WASD, or mobile(if you are on mobile, it is recommended but not necessary to switch to a computer).Press r to restart\nReach the door at the end of the level to advance to the next.\nIf you try a lot of times and don't succeed, the skip button will appear.\nDon't forget to follow for more!\n\n\n

@Stage\n\n@Sprite1\n\nwhen flag clicked\n\ngo to [front v] layer\n\ndefine platform (jump height) (gravity) (friction) (running speed)\nif <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n    change [x velocity v] by (running speed)\n    set rotation style [left-right v]\n    point in direction (90)\nend\nif <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n    change [x velocity v] by ((running speed) * (-1))\n    set rotation style [left-right v]\n    point in direction (-90)\nend\nset [x velocity v] to ((X velocity) * (friction))\nchange x by ((X velocity) * (1.8))\nif <touching (level v)?> then\n    set [slope v] to [0]\n    repeat until <<not <touching (level v)?>> or <(Slope) = [8]>>\n        change [slope v] by (1)\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by ((Slope) * (-1))\n        repeat ([ceiling v] of ([abs v] of (X velocity) ) )\n            if <touching (level v)?> then\n                repeat ([abs v] of (X velocity) )\n                    change x by (([abs v] of (X velocity) ) / ((X velocity) * (-0.70)))\n                end\n            end\n        end\n        set [x velocity v] to [0]\n    end\nend\nchange y by (Y velocity)\nif <touching (level v)?> then\n    repeat ([ceiling v] of ([abs v] of (Y velocity) ) )\n        if <touching (level v)?> then\n            change y by (([abs v] of (Y velocity) ) / ((Y velocity) * (-1)))\n        end\n    end\n    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(([abs v] of (Y velocity) ) / (Y velocity)) = [-1]>> then\n        set [y velocity v] to (jump height)\n    else\n        set [y velocity v] to [0]\n    end\nelse\n    change [y velocity v] by (-1)\nend\nrepeat ([abs v] of (X velocity) )\n    change x by (([abs v] of (X velocity) ) / ((X velocity) * (-1)))\nend\nif <touching (bouce v)?> then\n    set [y velocity v] to [25]\nend\nif <touching (sprite2 v)?> then\n    set [die v] to [1]\n    switch costume to (costume1 v)\n    broadcast (die v)\n    hide\nend\n\nwhen flag clicked\n\nif <not <touching (bouce v)?>> then\n\nif <key (up arrow v) pressed?> then\n\nwhen I receive [nex level v]\nrepeat (10)\n    change size by (-1)\nend\nset size to (40) %\ngo to x: (-150) y: (-136)\n\nbroadcast (next level v)\n\nchange y by (-5)\nchange x by (1)\n\nrepeat until <touching (_edge_ v)?>\n\nturn right (15) degrees\nset [y velocity v] to [-5]\nset [x velocity v] to [1]\n\npoint in direction (90)\n\nwhen I receive [computer v]\nforever\n    platform [13] [-16] [0.7] [2]\nend\n\nwhen I receive [die v]\n\nwhen flag clicked\nbroadcast (spawn v)\ngo to x: (-150) y: (-136)\n\nrepeat (5)\n    change [ghost v] effect by (20)\n    wait (0.001) seconds\nend\ngo to x: (-150) y: (-136)\n\nwhen flag clicked\nshow\n\nwhen I receive [ok\] v]\nshow\ngo to x: (-150) y: (-131)\n\nwhen [r v] key pressed\n\nwhen [r v] key pressed\ngo to x: (-150) y: (-136)\n\nwhen I receive [die v]\nhide\n\nwhen I receive [die v]\n\nwait (1) seconds\n\nset [die v] to [0]\n\nwait (1) seconds\n\nwhen flag clicked\nforever\n    play sound [Dungeon music \(free\) v] until done\nend\n\nwhen I receive [die v]\nstart sound [glass_break-SF v]\n\nturn left (15) degrees\n\nturn left (15) degrees\n\nif <mouse down?> then\n    change [y velocity v] by (-1.3)\nend\n\nif <mouse down?> then\n    change y by (([abs v] of (Y velocity) ) / ((Y velocity) * (1)))\nend\n\nif <mouse down?> then\n    wait (0.01) seconds\nend\n\nif <not <mouse down?>> then\n\ndefine run engine\nswitch costume to (costume2 v)\nset [ghost v] effect to (0)\nshow\ngo to x: (-180) y: (-50)\nset [level v] to [1]\nset [x v] to [0]\nset [y v] to [0]\npoint in direction (90)\nforever\n    change [y v] by (-1)\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n        change [x v] by (-0.8)\n        switch costume to (costume1 v)\n        point in direction (-90)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        point in direction (90)\n        switch costume to (costume2 v)\n        change [x v] by (0.8)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-4)\n        change x by ((x) * (-1))\n    end\n    change y by (y)\n    if <touching (level v)?> then\n        change y by ((0) - (y))\n        set [y v] to [1]\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)>>> and <touching (level v)?>> then\n        set [y v] to [13]\n    end\n    change y by (1)\n    if <(y position) > [180]> then\n        set [y v] to [0]\n    end\n    if <touching (bouce v)?> then\n        set [y v] to [25]\n    end\n    if <touching (sprite2 v)?> then\n        set [die v] to [1]\n        switch costume to (costume1 v)\n        broadcast (die v)\n        hide\n    end\nend\n\nwhen I receive [computer v]\nforever\n\nwhen I receive [mobile v]\nforever\n    run engine\nend\n\nturn right (15) degrees\n\ngo to (random position v)\n\nswitch backdrop to (backdrop2 v)\n\nturn left (15) degrees\n\n@Level\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nsay (Level)\n\n@Sprite2\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\n@Sprite4\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nturn right (15) degrees\n\n@Bouce\n\nwhen flag clicked\n\nwhen I receive [nex level v]\nwait (3) seconds\nif <(Level) = [7]> then\n    go to x: (-119) y: (-128)\n    create clone of (_myself_ v)\nend\nif <(Level) = [8]> then\n    go to x: (-119) y: (-128)\n    create clone of (_myself_ v)\nend\nif <(Level) = [12]> then\n    go to x: (140) y: (-127)\n    create clone of (_myself_ v)\n    go to x: (175) y: (16)\n    create clone of (_myself_ v)\n    go to x: (96) y: (138)\n    create clone of (_myself_ v)\nend\nif <(Level) = [13]> then\n    go to x: (-113) y: (-128)\n    create clone of (_myself_ v)\n    go to x: (-26) y: (-128)\n    create clone of (_myself_ v)\n    go to x: (64) y: (-128)\n    create clone of (_myself_ v)\n    go to x: (172) y: (-128)\n    create clone of (_myself_ v)\nend\nif <(Level) = [14]> then\n    go to x: (-140) y: (-128)\n    create clone of (_myself_ v)\nend\n\ngo to x: (172) y: (-128)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to [back v] layer\ngo [forward v] (2) layers\nshow\nforever\n    if <touching (sprite1 v)?> then\n        broadcast (bounce v)\n        switch costume to (costume3 v)\n        repeat (3)\n            wait (0.03) seconds\n            next costume\n        end\n    end\nend\n\nwhen I start as a clone\n\nwhen I receive [nex level v]\nwait (1) seconds\nset [nex level v] to [1]\nwait (0.00001) seconds\nset [nex level v] to [0]\n\nwhen I start as a clone\nforever\n    if <(nex level) = [1]> then\n        delete this clone\n    end\nend\n\nwait until <key (up arrow v) pressed?>\n\ngo to x: (-26) y: (-128)\ncreate clone of (_myself_ v)\ngo to x: (64) y: (-128)\ncreate clone of (_myself_ v)\n\nwhen I receive [bounce v]\nstart sound [Bounce @Sound_Bound v]\n\n@Sprite5\n\nwhen flag clicked\nset [ghost v] effect to (100)\nset [level v] to [1]\nforever\n    switch costume to (Level)\n    go to (sprite4 v)\n    if <touching (sprite1 v)?> then\n        broadcast (NEXTLEVEL v)\n        wait (1) seconds\n        broadcast (nex level v)\n        wait (1) seconds\n    end\nend\n\nwhen I receive [dugeon journey v]\nchange [level v] by (1)\n\n@Sprite6\n\nwhen flag clicked\nhide\n\nwhen I receive [nex level v]\ngo to x: (0) y: (8)\nshow\nrepeat (41)\n    change y by (-4)\nend\nwait (0.5) seconds\nrepeat (41)\n    change y by (4)\nend\nhide\n\n@Sprite7\n\nwhen flag clicked\nhide\n\nwhen I receive [nex level v]\nshow\ngo to x: (0) y: (8)\nrepeat (41)\n    change y by (4)\nend\nbroadcast (dugeon journey v)\nwait (0.5) seconds\nrepeat (41)\n    change y by (-4)\nend\nhide\n\nchange size by (10)\n\n@Sprite9\n\nwhen I receive [die v]\npoint in direction (90)\nshow\ngo to (sprite1 v)\nrepeat (7)\n    if <not <touching (level v)?>> then\n        change y by (5)\n        wait (0.01) seconds\n    end\nend\nrepeat until <touching (_edge_ v)?>\n    turn right (-8) degrees\n    change y by (-5)\nend\nrepeat (2)\n    turn right (-8) degrees\n    change y by (-5)\nend\nhide\nbroadcast (ok\] v)\n\nwhen flag clicked\nhide\n\nturn right (3) degrees\nchange y by (-5)\nchange x by (1)\n\nwait (0.01) seconds\n\n@Sprite10\n\nwhen flag clicked\nshow\nwait (1) seconds\nhide\n\ngo to [front v] layer\n\n@Sprite11\n\nwhen flag clicked\nshow\nswitch costume to (1 v)\nforever\n    if <touching (sprite1 v)?> then\n        set [touching sign v] to [1]\n    else\n        set [touching sign v] to [0]\n    end\nend\n\nwhen I receive [nex level v]\nif <not <<(Level) = [15]> or <<(Level) = [6]> or <(Level) = [4]>>>> then\n    hide\nend\nif <(Level) = [4]> then\n    show\n    switch costume to (4 v)\nend\nif <(Level) = [6]> then\n    show\n    switch costume to (6 v)\nend\nif <(Level) = [15]> then\n    switch costume to (15 v)\n    show\nend\n\nhide\n\n@Sprite13\n\nwhen I receive [nex level v]\n\nwhen flag clicked\nforever\n    if <(touching sign) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    switch costume to ([costume # v] of [sprite11 v])\nend\n\n@Sprite14\n\nwhen I receive [nex level v]\nhide\nset [deaths per level v] to [0]\n\nwhen flag clicked\nhide\nset [deaths per level v] to [0]\n\nwhen I receive [die v]\nchange [deaths per level v] by (1)\n\nwhen I receive [nex level v]\nforever\n    if <(deaths per level) = [5]> then\n        show\n        wait until <<[1] = (nex level)> or <<mouse down?> and <touching (mouse-pointer v)?>>>\n        if <<mouse down?> and <touching (mouse-pointer v)?>> then\n            hide\n            broadcast (nex level v)\n        else\n            hide\n        end\n    end\nend\n\nif <[] > [6]> then\nend\n\nwhen I receive [nextlevel v]\nhide\nstop [other scripts in sprite v]\n\n@Sprite16\n\nwhen I receive [die v]\nshow\nclear graphic effects\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\n@gSSSrFvjUzkvmxmeMYjyJ5\n\nwhen flag clicked\nhide\nwait (1) seconds\n\ngo to x: (0) y: (0)\n\nwait (1) seconds\n\nwhen I receive [selct v]\nshow\nswitch costume to (gsssrfvjuzkvmxmemyjyj5 v)\nrepeat (36)\n    next costume\n    wait (0.01) seconds\nend\nwait (1.4) seconds\nhide\n\n@Sprite3\n\nwhen flag clicked\nhide\n\nwait (2) seconds\n\nwhen I start as a clone\nswitch costume to (costume2 v)\nwait (2) seconds\nhide\n\nwhen I receive [selct v]\nshow\nwait (0.5) seconds\ncreate clone of (_myself_ v)\nwait (2) seconds\nhide\n\n@Sprite12\n\n@Sprite15\n\nwhen flag clicked\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        set [up key? v] to [1]\n    else\n        set [up key? v] to [0]\n    end\nend\n\n\n\nwhen flag clicked\n\nset y to (29)\n\n@Sprite8\n\nwhen flag clicked\nswitch costume to (download \(1\) v)\ncreate clone of (_myself_ v)\nswitch costume to (download \(1\)2 v)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\nwait until <mouse down?>\nif <touching (mouse-pointer v)?> then\n    if <(costume [number v]) = [1]> then\n        broadcast (mobile v)\n    else\n        broadcast (computer v)\n    end\nend\nrepeat (100)\n    change [pixelate v] effect by (1)\nend\nbroadcast (selct v)\ndelete this clone\n\n