The Long Platformer!

Instructions: 50 levels,3 bosses, 1 Long Platformer! Beat them and you win!\n\n     ------ ALL LEVELS ARE POSSIBLE ------\n\nWA(not s)D to move and have fun!\n\nIF YOU GET STUCK: PRESS R\n

@Stage\n\nwhen I receive [next level v]\nnext backdrop\n\nwhen flag clicked\nset [death count v] to [0]\nforever\n    if <(Game Running?) = [No]> then\n        switch backdrop to (title v)\n    end\n    if <(backdrop [name v]) = [17]> then\n        create clone of (fire ball v)\n        wait (1) seconds\n    end\nend\n\nwhen I receive [button pressed v]\nswitch backdrop to (1 v)\n\n@Apperance\n\nwhen flag clicked\nhide\nswitch costume to (normal v)\nforever\n    go to (hit box v)\nend\n\nwhen I receive [button pressed v]\nshow\n\nwhen flag clicked\nforever\n    Go To Hit Box\nend\n\ndefine Go To Hit Box\ngo to (hit box v)\n\nwhen I receive [die v]\npoint in direction (90)\nset [dead? v] to [Yes]\nswitch costume to (dead v)\nrepeat (10)\n    wait (0.031) seconds\n    change size by (7)\n    change [ghost v] effect by (10)\nend\nswitch costume to (normal v)\nset size to (20) %\nset [ghost v] effect to (0)\nset [dead? v] to [No]\n\nwhen flag clicked\nswitch costume to (normal v)\nset size to (20) %\nset [ghost v] effect to (0)\nset [dead? v] to [No]\npoint in direction (90)\nforever\n    if <(Dead?) = [Yes]> then\n        point in direction (90)\n        switch costume to (dead v)\n    else\n        turn right (([speed x v] of [hit box v]) * (3.5)) degrees\n        switch costume to (normal v)\n    end\nend\n\nwhen I receive [moving v]\nGo To Hit Box\n\nbroadcast (next level v)\n\n@Gui\n\n@Button\n\nwhen flag clicked\ngo to x: (140) y: (10)\nshow\n\nwhen this sprite clicked\nset [game running? v] to [Yes]\nhide\nbroadcast (Button Pressed v)\n\n@Fire Ball\n\nwhen I start as a clone\nshow\npoint towards (apperance v)\nforever\n    move (15) steps\n    if <touching (_edge_ v)?> then\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nforever\n    if <not <(backdrop [name v]) = [17]>> then\n        delete this clone\n    end\nend\n\n@Hit Box\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [level v] to [0]\nset [game running? v] to [No]\nhide\n\nwhen I receive [button pressed v]\npoint in direction (90)\ngo to x: (-210) y: (-147)\nset size to (20) %\nset [gravity v] to [Down]\nset [level v] to [1]\nset [death count v] to [0]\nchange [speed y v] by (0)\nforever\n    broadcast (Moving v)\n    change y by (Speed Y)\n    change [speed y v] by (-1)\n    Touch Ground <(Speed Y) > [0]>\n    show\n    set [ghost v] effect to (100)\n    if <<touching color (#00ffff)?> and <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <key (space v) pressed?>>>> then\n        set [speed y v] to [4]\n    else\n        if <touching color (#00ffff)?> then\n            set [speed y v] to [-2]\n        end\n    end\n    if <<(Speed Y) < [4]> or <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <key (space v) pressed?>>>> then\n        change [speed y v] by (-0.5)\n    else\n        change [speed y v] by (-2)\n    end\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        change [speed x v] by (-3)\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        change [speed x v] by (3)\n    end\n    if <<key (w v) pressed?> or <<key (up arrow v) pressed?> or <key (space v) pressed?>>> then\n        if <<(Jump Key) = [0]> and <(Falling?) < [3]>> then\n            set [speed y v] to [17]\n            set [falling? v] to [6]\n            set [jump key v] to [1]\n        end\n    else\n        set [jump key v] to [0]\n    end\n    if <(Wall Jump) > [0]> then\n        change [wall jump v] by (-1)\n    else\n        set [speed x v] to ((Speed X) * (0.7))\n    end\n    if <(Speed X) < [0.5]> then\n        Walk (-90) (Speed X)\n        broadcast (Moving v)\n    else\n        if <(Speed X) > [0.5]> then\n            Walk (90) (Speed X)\n            broadcast (Moving v)\n        end\n    end\n    if <touching color (#ffff00)?> then\n        if <(Dead?) = [Yes]> then\n        else\n            broadcast (Next Level v)\n        end\n    end\n    if <touching color (#00ff55)?> then\n        set [speed y v] to [30]\n    end\n    if <<touching color (#ff0000)?> or <touching color (#003fff)?>> then\n        broadcast (Die v)\n        repeat (10)\n            wait (0.03) seconds\n        end\n    end\nend\n\nwhen flag clicked\nwait until <not <(Game Running?) = [Yes]>>\nforever\n    if <key (r v) pressed?> then\n        clear graphic effects\n        set size to (20) %\n        point in direction (90)\n        go to x: (-210) y: (-147)\n        set [speed y v] to [0]\n        set [speed x v] to [0]\n        change [death count v] by (1)\n        wait (1) seconds\n    end\nend\n\nwhen I receive [next level v]\nclear graphic effects\nset size to (20) %\npoint in direction (90)\ngo to x: (-210) y: (-147)\nset [speed y v] to [0]\nset [speed x v] to [0]\nchange [level v] by (1)\n\ndefine Touch Ground <>\nchange [falling? v] by (1)\nrepeat until <not <touching color (#000000)?>>\n    if <up?> then\n        change y by (-4)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\nwhen flag clicked\nforever\n    if <<touching color (#ff0000)?> or <touching color (#003fff)?>> then\n        play sound [chomp v] until done\n        wait (0.5) seconds\n    end\nend\n\ndefine None\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <touching color (#000000)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(Slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (Slope))\n    if <<<key (space v) pressed?> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> and <([abs v] of (speed) ) > [0]>> then\n        start sound [jump_10 v]\n        if <(Speed X) > [0]> then\n            set [speed x v] to [-20]\n        else\n            set [speed x v] to [20]\n        end\n        set [speed y v] to [15]\n    else\n        set [speed x v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    if <(backdrop [name v]) = [18]> then\n        stop all sounds\n        wait until <not <(backdrop [name v]) = [18]>>\n    end\nend\n\nwhen I receive [die v]\nrepeat (10)\n    wait (0.03) seconds\nend\npoint in direction (90)\ngo to x: (-210) y: (-140)\nset [speed y v] to [0]\nset [speed x v] to [0]\nchange [death count v] by (1)\nset size to (20) %\n\nwhen flag clicked\nforever\n    if <<(y position) = [181]> and <touching color (#000000)?>> then\n        clear graphic effects\n        set size to (20) %\n        point in direction (90)\n        go to x: (-210) y: (-147)\n        set [speed y v] to [0]\n        set [speed x v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    if <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n        if <(Game Running?) = [Yes]> then\n            if <<(Jump Key) = [0]> and <(Falling?) < [3]>> then\n                start sound [jump_10 v]\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    play sound [Orbital Colossus.mp3 v] until done\nend\n\nwhen [c v] key pressed\nbroadcast (next level v)\n\n@Lighting Bolt\n\nwhen flag clicked\nerase all\npen down\nforever\n    hide\nend\n\nwhen flag clicked\nerase all\nset pen size to (10)\ngo to x: (140) y: (-55)\nforever\n    if <(backdrop [name v]) = [36]> then\n        wait (2) seconds\n        broadcast (Shoot Lighting v)\n    else\n        pen up\n        erase all\n        go to x: (140) y: (-55)\n    end\nend\n\nwhen I receive [shoot lighting v]\nset [speed v] to ((distance to [hit box v]) / (7))\npen down\nset pen color to (#003fff)\npoint towards (hit box v)\nbroadcast (Set New Position v)\nrepeat (5)\n    move (speed) steps\nend\nturn left (-135) degrees\nrepeat (5)\n    move (15) steps\nend\npoint towards (lightning assistant v)\nrepeat (5)\n    move (speed) steps\nend\nwait (1) seconds\npen up\nerase all\ngo to x: (140) y: (-55)\n\n@Lightning Assistant\n\nwhen I receive [set new position v]\ngo to (hit box v)\n\nwhen flag clicked\nerase all\n\n@Dynamic Clones\n\ndefine None\nset [costume/type v] to (costume/type)\nset [speed \(spinning and moving\) v] to (speed \(spinning and moving\))\nset [left or right \( 1 = left, 2 = right\) v] to (left or right \( 1 = left, 2 = right)\nset [wait between acting again v] to (wait between acting again)\nset [x position v] to (x position)\nset [y position v] to (y position)\nset [level it's supposed to be on v] to (level it's supposed to be on)\nset [size \(of a percent\) v] to (size \(of a percent\))\nset [time limit v] to (time limit)\ncreate clone of (dynamic clones v)\n\nwhen I start as a clone\nset [times v] to [0]\nshow\nforever\n    set size to (Size \(Of a percent\)) %\n    switch costume to (Costume/Type)\n    go to x: (X Position) y: (Y Position)\n    if <(Left or Right \( 1 = Left, 2 = Right\)) = [1]> then\n        turn left (Speed \(Spinning and Moving\)) degrees\n    else\n        turn right (Speed \(Spinning and Moving\)) degrees\n    end\n    if <not <(backdrop [name v]) = (Level it's supposed to be on)>> then\n        delete this clone\n    end\n    if <not <(backdrop [name v]) = (Level it's supposed to be on)>> then\n        delete this clone\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [42]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (100) (-70) (42) (600) (5)\n        wait until <not <(backdrop [name v]) = [42]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [41]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (0) (-40) (41) (500) (5)\n        wait until <not <(backdrop [name v]) = [41]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [42]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (100) (-70) (42) (600) (5)\n        wait until <not <(backdrop [name v]) = [42]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [42]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (100) (-70) (42) (600) (5)\n        wait until <not <(backdrop [name v]) = [42]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [42]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (100) (-70) (42) (600) (5)\n        wait until <not <(backdrop [name v]) = [42]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [42]> then\n        Create A Spinning Clone [Axe] (20) (2) (0.005) (100) (-70) (42) (600) (5)\n        wait until <not <(backdrop [name v]) = [42]>>\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(backdrop [name v]) = [51]> then\n        Create A Spinning Clone [Lazer] (10) (1) (0.1) (0) (0) (51) (2500) (51)\n        wait until <not <(backdrop [name v]) = [51]>>\n    end\nend\n\n