Gladiator Platformer 

Instructions: • Arrow keys to move.\n• Avoid lava, other gladiators, spikes & more.\n• All levels are possible.\n• Sorry it's short.\n• Love, Fav and Follow.\n• Propose to be featured here: https://scratch.mit.edu/studios/28715018/\n• Constructive criticism is valued.\n• This is my entry for @l_ecureuil's contest.

@Stage\n\nwhen I receive [green flag v]\nswitch backdrop to (colosseum v)\nforever\n    play sound [World 4 v] until done\nend\n\nwhen flag clicked\nswitch backdrop to (intro v)\nstart sound [Triumph v]\n\n@Baddy\n\ndefine Move\nswitch costume to (hit box v)\nif <(bvx) < [0]> then\n    point in direction (-90)\nelse\n    if <not <(bvx) = [0]>> then\n        point in direction (90)\n    end\nend\nif <([x position v] of [gladiator v]) > (x position)> then\n    change [bvx v] by (1)\nend\nif <([x position v] of [gladiator v]) < (x position)> then\n    change [bvx v] by (-1)\nend\nset [bvx v] to ((bvx) * (0.8))\nif <<([y position v] of [gladiator v]) > (y position)> and <(bia) < [8]>> then\n    set [bvy v] to [30]\n    change [bia v] by (1)\nend\nchange [bvy v] by (-2)\nchange [bia v] by (1)\nchange y by (bvy)\nif <touching (level v)?> then\n    if <(bvy) > [0]> then\n        repeat until <not <touching (level v)?>>\n            set [bvy v] to [0]\n            change y by (-1)\n        end\n    else\n        repeat until <not <touching (level v)?>>\n            set [bia v] to [0]\n            set [bvy v] to [0]\n            change y by (1)\n        end\n    end\nend\nchange x by (bvx)\nif <touching (level v)?> then\n    repeat (8)\n        if <touching (level v)?> then\n            change y by (1)\n        end\n    end\n    if <touching (level v)?> then\n        change y by (-8)\n        if <(bvx) > [0]> then\n            repeat until <not <touching (level v)?>>\n                set [bvx v] to [0]\n                change x by (-1)\n            end\n        else\n            repeat until <not <touching (level v)?>>\n                set [bvx v] to [0]\n                change x by (1)\n            end\n        end\n    end\nend\nswitch costume to (baddy v)\n\ndefine Test die\nswitch costume to (hit box v)\nif <<<(y position) < [-180]> or <touching (lava v)?>> or <<touching (spike2 v)?> or <<touching (spike v)?> or <(Die or Win) > []>>>> then\n    set [bdow v] to [die]\nend\nswitch costume to (baddy v)\n\nwhen I receive [lava v]\nif <([costume # v] of [level v]) = [3]> then\n    point in direction (90)\n    set rotation style [left-right v]\n    hide\n    set [bdow v] to []\n    set [bvx v] to [0]\n    set [bvy v] to [0]\n    go to x: (240) y: (item (level) of [bs v])\n    show\n    repeat until <(bdow) > []>\n        Move\n        Test die\n    end\n    hide\nend\n\nstop [this script v]\n\nwhen flag clicked\nhide\n\nwhen I receive [restart v]\nif <([costume # v] of [level v]) = [3]> then\n    point in direction (90)\n    set rotation style [left-right v]\n    hide\n    set [bdow v] to []\n    set [bvx v] to [0]\n    set [bvy v] to [0]\n    go to x: (240) y: (item (level) of [bs v])\n    show\n    repeat until <(bdow) > []>\n        Move\n        Test die\n    end\n    hide\nend\n\nwhen I receive [next v]\n\n@Saturn-Rings\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\nwhen I receive [message1 v]\nshow\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\n\nwhen I receive [green flag v]\nhide\n\n@S\n\nwhen flag clicked\nhide\nrepeat (120)\n    go to x: (pick random (-230) to (-200)) y: (pick random (-120) to (120))\n    create clone of (_myself_ v)\n    go to x: (pick random (230) to (200)) y: (pick random (-120) to (120))\n    create clone of (_myself_ v)\nend\nbroadcast (green flag v)\nhide\n\nwhen I start as a clone\ngo to [back v] layer\nset size to (pick random (10) to (30)) %\nif <not <touching color (#000000)?>> then\n    show\nend\nif <(x position) > [0]> then\n    repeat until <(x position) < [0]>\n        point in direction (-90)\n        move (10) steps\n    end\nelse\n    repeat until <(x position) > [0]>\n        point in direction (90)\n        move (10) steps\n    end\nend\ndelete this clone\n\nwhen I receive [green flag v]\nhide\n\n@Logo\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset size to (0) %\nshow\nrepeat (7)\n    change size by (10)\nend\nrepeat (4)\n    change size by (-5)\nend\nbroadcast (message1 v)\nrepeat (5)\n    change y by (10)\nend\n\nwhen I receive [green flag v]\nhide\n\n@Level\n\nwhen flag clicked\nhide\ngo to [back v] layer\nswitch costume to (level 1 v)\n\nwhen I receive [green flag v]\nshow\n\nwhen I receive [next v]\nnext costume\nbroadcast (Lava v)\n\n@Gladiator\n\ndefine Move\nswitch costume to (hit box v)\nif <(X Velocity) < [0]> then\n    point in direction (-90)\nelse\n    if <not <(X Velocity) = [0]>> then\n        point in direction (90)\n    end\nend\nif <key (right arrow v) pressed?> then\n    change [x velocity v] by (2)\nend\nif <key (left arrow v) pressed?> then\n    change [x velocity v] by (-2)\nend\nset [x velocity v] to ((X Velocity) * (0.8))\nif <<key (up arrow v) pressed?> and <(In Air) < [8]>> then\n    set [y velocity v] to [20]\n    change [in air v] by (1)\nend\nchange [y velocity v] by (-2)\nchange [in air v] by (1)\nchange y by (Y Velocity)\nif <touching (level v)?> then\n    if <(Y Velocity) > [0]> then\n        repeat until <not <touching (level v)?>>\n            set [y velocity v] to [0]\n            change y by (-1)\n        end\n    else\n        repeat until <not <touching (level v)?>>\n            set [in air v] to [0]\n            set [y velocity v] to [0]\n            change y by (1)\n        end\n    end\nend\nchange x by (X Velocity)\nif <touching (level v)?> then\n    repeat (8)\n        if <touching (level v)?> then\n            change y by (1)\n        end\n    end\n    if <touching (level v)?> then\n        change y by (-8)\n        if <(X Velocity) > [0]> then\n            repeat until <not <touching (level v)?>>\n                set [x velocity v] to [0]\n                change x by (-1)\n            end\n        else\n            repeat until <not <touching (level v)?>>\n                set [x velocity v] to [0]\n                change x by (1)\n            end\n        end\n    end\nend\nswitch costume to (gladiator v)\n\ndefine Test win\nswitch costume to (hit box v)\nif <(x position) > [240]> then\n    set [die or win v] to [win]\nend\nswitch costume to (gladiator v)\n\ndefine Test die\nswitch costume to (hit box v)\nif <<<(y position) < [-180]> or <touching (lava v)?>> or <<touching (spike2 v)?> or <<touching (spike v)?> or <touching (baddy v)?>>>> then\n    set [die or win v] to [die]\nend\nswitch costume to (gladiator v)\n\nwhen I receive [green flag v]\nset [level v] to [1]\npoint in direction (90)\nset rotation style [left-right v]\nforever\n    hide\n    go to x: (-240) y: (item (level) of [spawn v])\n    set [x velocity v] to [0]\n    set [y velocity v] to [0]\n    set [die or win v] to []\n    show\n    repeat until <(Die or Win) > []>\n        Move\n        Test die\n        Test win\n    end\n    if <(Die or Win) = [win]> then\n        set [die or win v] to []\n        broadcast (next v) and wait\n        change [level v] by (1)\n    else\n        set [die or win v] to []\n        broadcast (restart v)\n    end\nend\n\nwhen flag clicked\nhide\n\n@Lava\n\nwhen flag clicked\nhide\n\nwhen I receive [lava v]\nhide\ngo to x: (-18) y: (-210)\nif <([costume # v] of [level v]) = [2]> then\n    switch costume to (lava v)\n    go to [back v] layer\n    go [forward v] (1) layers\n    show\n    repeat until <(Die or Win) > [win]>\n        go to x: (-18) y: (-210)\n        repeat (10)\n            change y by (-2)\n        end\n        repeat (10)\n            change y by (2)\n        end\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [5]> then\n    switch costume to (lava2 v)\n    go to [back v] layer\n    go [forward v] (1) layers\n    show\n    go to x: (-18) y: (-210)\n    repeat until <(Die or Win) > [win]>\n        repeat (10)\n            change y by (-2)\n        end\n        repeat (10)\n            change y by (2)\n        end\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [8]> then\n    switch costume to (lava2 v)\n    go to [back v] layer\n    go [forward v] (1) layers\n    show\n    go to x: (-18) y: (-210)\n    repeat until <(Die or Win) > [win]>\n        repeat (10)\n            change y by (-2)\n        end\n        repeat (10)\n            change y by (2)\n        end\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [10]> then\n    switch costume to (lava3 v)\n    go to [back v] layer\n    go [forward v] (1) layers\n    go [forward v] (1) layers\n    show\n    go to x: (-18) y: (-210)\n    repeat until <(Die or Win) > [win]>\n        repeat (10)\n            change y by (-2)\n        end\n        repeat (10)\n            change y by (2)\n        end\n    end\n    hide\n    stop [this script v]\nend\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\n@spike\n\nwhen I receive [lava v]\ngo to [back v] layer\nif <([costume # v] of [level v]) = [4]> then\n    go to x: (114) y: (-18)\n    show\n    wait until <(Die or Win) > [win]>\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [9]> then\n    go to x: (162) y: (-115)\n    go [forward v] (1) layers\n    show\n    wait until <(Die or Win) > [win]>\n    hide\n    stop [this script v]\nend\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\nwhen flag clicked\nhide\n\n@spike2\n\nwhen flag clicked\nhide\n\nwhen I receive [lava v]\ngo to [back v] layer\ngo [forward v] (3) layers\nif <([costume # v] of [level v]) = [4]> then\n    go to x: (-14) y: (-125)\n    switch costume to (costume1 v)\n    show\n    repeat until <(Die or Win) > [win]>\n        turn right (9) degrees\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [6]> then\n    go to x: (0) y: (-117)\n    switch costume to (costume2 v)\n    show\n    repeat until <(Die or Win) > [win]>\n        turn right (4) degrees\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [7]> then\n    go to x: (0) y: (-130)\n    switch costume to (costume1 v)\n    show\n    repeat until <(Die or Win) > [win]>\n        turn right (4) degrees\n    end\n    hide\n    stop [this script v]\nend\nif <([costume # v] of [level v]) = [10]> then\n    go to x: (-20) y: (-125)\n    switch costume to (costume1 v)\n    show\n    repeat until <(Die or Win) > [win]>\n        turn right (9) degrees\n    end\n    hide\n    stop [this script v]\nend\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\nhide\nstop [this script v]\n\n@Thumbnail\n\nwhen flag clicked\nhide\ngo to [front v] layer\n\n@Sprite1\n\nwhen flag clicked\nhide\n\nwhen I receive [green flag v]\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\nswitch costume to (costume2 v)\nset size to (110) %\nswitch costume to (colosseum v)\nshow\nforever\n    go to x: (([x position v] of [gladiator v]) * (-0.07)) y: (([y position v] of [gladiator v]) * (-0.07))\nend\n\nwhen I receive [lava v]\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\n\nswitch costume to (costume2 v)\n\n