Box platformer

Instructions: -Keyboard control\n- Broadcast and receive\n-Lives\n-Levels\n- Boss fight\n

@Stage\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [H-Audio - Pixel Dungeons v] until done\nend\n\nwhen flag clicked\nforever\n    if <key (1 v) pressed?> then\n        change volume by (1)\n    end\n    if <key (2 v) pressed?> then\n        change volume by (-1)\n    end\nend\n\nwhen [d v] key pressed\nstop [all v]\n\n@Player\n\nwhen flag clicked\nforever\n    if <touching color (#9770c9)?> then\n        go to x: (-227) y: (-69)\n        broadcast (next stage v)\n    end\n    if <touching color (#e14731)?> then\n        go to x: (-227) y: (-69)\n        change [life v] by (-1)\n    end\n    if <(Life) = [0]> then\n        broadcast (Gameover v)\n    end\n    if <touching color (#707dd6)?> then\n        set [y v] to [20]\n    end\nend\n\nwhen [r v] key pressed\ngo to x: (-227) y: (-69)\n\nwhen flag clicked\nset [life v] to [3]\npoint in direction (90)\ngo to x: (-216) y: (-77)\nset [x v] to [0]\nset [y v] to [0]\nforever\n    go to [front v] layer\n    if <key (left arrow v) pressed?> then\n        point in direction (-90)\n        change [x v] by (-1)\n    end\n    if <key (right arrow v) pressed?> then\n        point in direction (90)\n        change [x v] by (1)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching color (#7f7f7f)?> then\n        change x by ((x) * (-1))\n        if <key (up arrow v) pressed?> then\n            set [y v] to [12]\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    change [y v] by (-1)\n    change y by (y)\n    if <<touching color (#16c64d)?> or <touching color (#7f7f7f)?>> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <<key (up arrow v) pressed?> and <touching color (#16c64d)?>> then\n        set [y v] to [12]\n    end\n    change y by (1)\nend\n\n@Stage\n\nwhen flag clicked\nswitch costume to (level 1 v)\n\nwhen I receive [next stage v]\nnext costume\n\nshow\n\nwhen flag clicked\nshow\nforever\n    go to [front v] layer\n    go to x: (0) y: (0)\n    if <(costume [number v]) = [8]> then\n        broadcast (moving platform v)\n    end\n    if <(costume [number v]) = [9]> then\n        broadcast (moving platform v)\n    end\n    if <(costume [number v]) = [10]> then\n        broadcast (moving magma v)\n    end\n    if <(costume [number v]) = [11]> then\n        broadcast (fin game v)\n    end\n    if <(costume [number v]) = [12]> then\n        broadcast (boss fight v)\n        stop [this script v]\n    end\nend\n\nwhen I receive [win v]\nswitch costume to (outro3 v)\n\nwhen I receive [gameover v]\nswitch costume to (outro4 v)\n\nwhen flag clicked\nshow\nforever\n    go to [front v] layer\n    go to x: (0) y: (0)\n    if <(costume [number v]) = [9]> then\n        broadcast (moving platform v)\n    end\n    if <(costume [number v]) = [8]> then\n        broadcast (moving platform v)\n    end\n    if <(costume [number v]) = [10]> then\n        broadcast (moving magma v)\n    end\nend\n\n@moving platform1\n\nwhen I receive [moving platform v]\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [moving magma v]\nswitch costume to (costume2 v)\nshow\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\ngo to x: (127) y: (-80)\nforever\n    glide (2) secs to x: (-103) y: (-80)\n    wait (0.9) seconds\n    glide (2) secs to x: (127) y: (-80)\n    wait (0.9) seconds\nend\n\nwhen I receive [fin game v]\nhide\n\n@Moving platform 2\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\ngo to x: (-103) y: (-80)\nforever\n    glide (2) secs to x: (127) y: (-80)\n    wait (0.9) seconds\n    glide (2) secs to x: (-103) y: (-80)\n    wait (0.9) seconds\nend\n\nwhen I receive [moving magma v]\nhide\n\nwhen I receive [moving platform v]\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [fin game v]\nhide\n\n@Level boss\n\nwhen flag clicked\nhide\n\nwhen I receive [boss fight v]\nshow\n\nwhen I receive [defeat v]\nhide\nbroadcast (win v)\n\nwhen I receive [gameover v]\nhide\n\n@Player shot\n\nwhen [z v] key pressed\nshow\nforever\n    go to x: (-7) y: (-134)\n    forever\n        change x by (5)\n        if <touching color (#316ae0)?> then\n            hide\n            stop [this script v]\n        end\n        if <touching color (#e14731)?> then\n            hide\n            change [bullets v] by (1)\n            if <(bullets) = [5]> then\n                broadcast (defeat v)\n            end\n            stop [this script v]\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [boss fight v]\nset [bullets v] to [0]\nshow variable [bullets v]\n\n@Shield\n\nwhen I receive [boss fight v]\nshow\ngo to x: (-20) y: (-139)\nforever\n    glide (0.2) secs to x: (-20) y: (-99)\n    glide (0.2) secs to x: (-20) y: (-139)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [gameover v]\nhide\n\nwhen I receive [win v]\nhide\n\nwhen I receive [defeat v]\nhide\n\n