Angry Birds: The Platformer

Instructions: If there are bugs, tell me in the comments.\nCONTROLS:\nCursor keys/WASD/Tap (Mobile) to move your player\nAvoid spikes, lava, saws, acid and enemies! Be careful, as some spikes move!\nTrampolines make you jump really high!\nJump on enemies to defeat them. However, do NOT run into them. \nSwim in water.\nGet to the far right to advance to the next level.

@Stage\n\nwhen flag clicked\nforever\n    forever\n        forever\n            forever\n                forever\n                    forever\n                        forever\n                            play sound [Inferno v] until done\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\n@Blank\n\n@Player\n\ndefine Controls\nforever\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        switch costume to (right v)\n        change [speed_x v] by (1.3)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        switch costume to (left v)\n        change [speed_x v] by (-1.3)\n    end\n    change x by (speed_X)\n    if <touching (platform v)?> then\n        change x by ((speed_X) * (-1))\n        set [speed_x v] to [0]\n    else\n        set [speed_x v] to ((speed_X) * (0.8))\n    end\n    change y by (Speed_Y)\n    if <touching (platform v)?> then\n        change y by ((Speed_Y) * (-1))\n        set [speed_y v] to [0]\n        if <(Jump) = [0]> then\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <key (space v) pressed?>> then\n                switch costume to (up v)\n                set [speed_y v] to [11]\n                set [jump v] to [1]\n            end\n        end\n    else\n        change [speed_y v] by (-1)\n        set [jump v] to [0]\n    end\nend\n\nwhen flag clicked\nset [jump v] to [0]\nset [speed_x v] to [0]\nset [speed_y v] to [0]\nControls\n\nwhen flag clicked\nSensing\n\nwhen flag clicked\nset size to (100) %\ngo to x: (-205) y: (114)\nset [level v] to [1]\n\ndefine Sensing\nforever\n    if <<(x position) = [240]> or <(x position) > [240]>> then\n        broadcast (next level v)\n        go to x: (-212) y: (-32)\n    end\n    if <<<touching (spikes v)?> or <touching (moving ob v)?>> or <<touching (spikes\(enemy\) v)?> or <touching (enemy v)?>>> then\n        repeat (10)\n            change [pixelate v] effect by (100)\n        end\n        wait (0.5) seconds\n        go to x: (-212) y: (-32)\n        repeat (10)\n            change [pixelate v] effect by (-100)\n        end\n        set [pixelate v] effect to (0)\n    end\n    if <<touching (jump pad v)?> or <touching (jump pad2 v)?>> then\n        broadcast (Sense v)\n        switch costume to (down v)\n        set [speed_y v] to [18]\n        start sound [Jump v]\n    end\nend\n\nwhen flag clicked\nbroadcast (front layered v)\nwait (1) seconds\nbroadcast (mid layered v)\nwait (1) seconds\nbroadcast (back layered v)\n\nwhen flag clicked\nSize\n\ndefine Size\nforever\n    if <<(Level) > [50000]> and <key (1 v) pressed?>> then\n        repeat (40)\n            change size by (1)\n        end\n        set size to (100) %\n    end\n    if <<(Level) > [8888888]> and <key (space v) pressed?>> then\n        repeat (40)\n            change size by (-1)\n        end\n        set size to (60) %\n    end\nend\n\nwhen I receive [next level v]\nstart sound [Coin v]\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nset size to (70) %\nswitch costume to (blank v)\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (5)\n    change [ghost v] effect by (0)\n    turn right (15) degrees\nend\ndelete this clone\n\n@Platform\n\nwhen flag clicked\nshow\ngo to [back v] layer\nset [ghost v] effect to (100)\n\nwhen I receive [next level v]\nnext costume\nchange [level v] by (1)\n\nwhen I receive [front layered v]\ngo to [front v] layer\n\nwhen flag clicked\nset [level v] to [1]\ngo to x: (29) y: (-68)\nswitch costume to (costume1 v)\n\nwhen I receive [start213123 v]\nset [ghost v] effect to (0)\nshow\ngo to [front v] layer\n\nwhen flag clicked\nhide variable [level v]\n\n@Spikes\n\nwhen flag clicked\ngo to x: (94) y: (-84)\nswitch costume to (spike 1 v)\nshow\n\nwhen I receive [next level v]\nnext costume\n\nwhen I receive [mid layered v]\ngo to [back v] layer\n\n@jump pad\n\nwhen flag clicked\nJump Pad\n\nwhen flag clicked\n\nwhen I receive [sense v]\nswitch costume to (jump pad v)\nrepeat (2)\n    next costume\n    wait (0.05) seconds\nend\nswitch costume to (jump pad v)\n\ndefine Jump Pad\nhide\nforever\n    if <<(Level) = [4]> or <(Level) = [6]>> then\n        show\n    end\n    if <(Level) = [5]> then\n        hide\n    end\n    if <(Level) = [4]> then\n        go to x: (-95) y: (-59)\n    end\n    if <(Level) = [6]> then\n        go to x: (-93) y: (-88)\n        show\n    end\n    if <(Level) = [7]> then\n        hide\n    end\n    if <(Level) = [1]> then\n        hide\n    end\nend\n\nwhen I receive [front layered v]\ngo to [front v] layer\n\n@Moving Ob\n\nwhen flag clicked\nOb\n\nwhen flag clicked\nclear graphic effects\n\nwhen I receive [mid layered v]\ngo to [back v] layer\n\ndefine Ob\nhide\ngo to x: (-5) y: (106)\nforever\n    if <(Level) = [5]> then\n        switch costume to (costume1 v)\n        show\n        repeat (100)\n            change y by (1)\n        end\n        wait (0.7) seconds\n        repeat (10)\n            change y by (-10)\n        end\n        wait (1.2) seconds\n    end\n    if <(Level) = [6]> then\n        switch costume to (costume2 v)\n        hide\n    end\nend\n\n@Next Lvl\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nshow\ngo to [front v] layer\ngo to x: (461) y: (0)\nglide (0.3) secs to x: (0) y: (0)\nwait (1.5) seconds\nglide (0.5) secs to x: (-461) y: (0)\nwait (0.1) seconds\nbroadcast (finished v)\nhide\n\n@Background\n\nwhen flag clicked\ngo to x: (21) y: (-11)\nswitch costume to (costume1 v)\nshow\nset [ghost v] effect to (10)\n\nset [ghost v] effect to (0)\n\nwhen I receive [back layered v]\ngo to [back v] layer\n\nwhen flag clicked\nforever\n    if <(Level) = [7]> then\n        switch costume to (costume2 v)\n    end\nend\n\n@Clouds\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nset size to (pick random (50) to (80)) %\nshow\nset [ghost v] effect to (10)\nswitch costume to (pick random (1) to (4))\nif <(side) = [1]> then\n    go to x: (300) y: (pick random (150) to (100))\n    repeat until <(x position) < [-250]>\n        change x by (-1)\n    end\n    delete this clone\nend\nif <(side) = [2]> then\n    go to x: (-300) y: (pick random (150) to (100))\n    repeat until <(x position) > [250]>\n        change x by (1)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\ngo [forward v] (1) layers\n\nwhen flag clicked\nCloud\n\nwhen I receive [mid layered v]\ngo to [back v] layer\n\ndefine Cloud\nforever\n    set [side v] to (pick random (1) to (2))\n    create clone of (_myself_ v)\n    wait (pick random (5) to (10)) seconds\nend\n\n@jump pad2\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [6]> then\n        show\n        go to x: (69) y: (-87)\n    else\n        hide\n    end\nend\n\nwhen I receive [sense v]\nswitch costume to (jump pad v)\nrepeat (2)\n    next costume\n    wait (0.05) seconds\nend\nswitch costume to (jump pad v)\n\nwhen I receive [front layered v]\ngo to [front v] layer\n\n@Enemy\n\ndefine enemy\nhide\nforever\n    if <<(Level) = [8]> or <(Level) = [9]>> then\n        set [ghost v] effect to (10)\n        show\n        go to x: (-56) y: (-84)\n        switch costume to (costume1 v)\n        wait (2) seconds\n        switch costume to (right v)\n        glide (2) secs to x: (145) y: (-83)\n        wait (1) seconds\n        switch costume to (left v)\n        glide (2) secs to x: (-56) y: (-84)\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nenemy\n\nwhen I start as a clone\nwait (2) seconds\nforever\n    if <(Level) = [9]> then\n        set [ghost v] effect to (10)\n        show\n        switch costume to (costume1 v)\n        wait (2) seconds\n        switch costume to (right v)\n        glide (2) secs to x: (145) y: (-83)\n        wait (1) seconds\n        switch costume to (left v)\n        glide (2) secs to x: (-56) y: (-84)\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nwait until <(Level) = [9]>\ncreate clone of (_myself_ v)\nbroadcast (enemy_clone v)\n\nwhen flag clicked\nforever\n    if <(Level) = [10]> then\n        set [ghost v] effect to (100)\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\n@End\n\n@Spikes(enemy)\n\nwhen flag clicked\nArmor\n\nwhen I receive [enemy_clone v]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nwait (2) seconds\nforever\n    if <(Level) = [9]> then\n        set [ghost v] effect to (10)\n        show\n        switch costume to (costume1 v)\n        wait (2) seconds\n        switch costume to (right v)\n        glide (2) secs to x: (145) y: (-83)\n        wait (1) seconds\n        switch costume to (left v)\n        glide (2) secs to x: (-56) y: (-84)\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nforever\n    turn right (13) degrees\nend\n\ndefine Armor\nhide\nforever\n    go to (enemy v)\n    turn right (13) degrees\n    if <<(Level) = [9]> or <(Level) = [8]>> then\n        show\n    else\n        hide\n    end\nend\n\n@Bar\n\nwhen flag clicked\n\nwhen flag clicked\nwait until <(Level) = [6]>\ngo to [front v] layer\n\nwhen I receive [finished v]\nshow\nset [ghost v] effect to (45)\nwait (3) seconds\nbroadcast (hide v)\nrepeat (5)\n    change [ghost v] effect by (11)\nend\nhide\n\nwhen I receive [start v]\nshow\nset [ghost v] effect to (45)\n\nset [ghost v] effect to (45)\n\nshow\n\nwhen I receive [start213123 v]\nhide\nwait (1) seconds\nshow\nset [ghost v] effect to (45)\nif <(Level) = [1]> then\n    show\n    wait (2) seconds\n    broadcast (Brodcasting... v)\n    repeat (5)\n        change [ghost v] effect by (11)\n    end\n    hide\nend\n\nwhen flag clicked\nwait until <(Level) = [10]>\ngo to [back v] layer\nhide\n\n@Text1\n\nwhen I receive [brodcasting... v]\nhide\n\nwhen I receive [start213123 v]\nhide\nwait (1) seconds\nshow\ngo to [front v] layer\ngo to x: (-102) y: (97)\nswitch costume to (costume1 v)\nrepeat (16)\n    next costume\nend\n\n@Text2\n\nwhen flag clicked\nhide\nwait until <(Level) = [2]>\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [2]> then\n    show\n    go to [front v] layer\n    go to x: (-43) y: (89)\n    switch costume to (costume1 v)\n    repeat (39)\n        next costume\n    end\n    stop [this script v]\nelse\n    hide\nend\nif  then\nend\n\n@Text3\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [3]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    set [ghost v] effect to (100)\n    show\n    go to [back v] layer\n    go to x: (-43) y: (89)\n    switch costume to (costume1 v)\n    set [ghost v] effect to (0)\n    repeat (9)\n        go to [front v] layer\n        next costume\n    end\n    stop [this script v]\nend\n\n@Text4\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [4]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (8)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Text5\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [5]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (19)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Text6\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [6]> then\n    go to [front v] layer\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (20)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Text7\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [7]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (24)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Text8\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [8]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (13)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Text9\n\nwhen flag clicked\nhide\n\nwhen I receive [hide v]\nhide\n\nwhen I receive [finished v]\nif <(Level) = [9]> then\n    hide\n    wait (0.1) seconds\n    broadcast (start v)\n    show\n    go to [front v] layer\n    switch costume to (costume1 v)\n    repeat (4)\n        next costume\n    end\n    wait (2) seconds\n    hide\n    stop [this script v]\nend\n\n@Thumbnail\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (0)\nshow\nswitch costume to (thumb2 v)\n\nwhen this sprite clicked\nbroadcast (start213123 v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\n@Love fave\n\nwhen flag clicked\ngo to [front v] layer\nset [costume v] to [0]\nhide\nforever\n    if <not <<(LOVED__) = [1]> and <(FAVED___) = [1]>>> then\n        wait (pick random (15) to (20)) seconds\n        switch costume to (follow! v)\n        go to x: (0) y: (50)\n        show\n        go to [front v] layer\n        start sound [pop v]\n        repeat (9)\n            change y by (-6)\n        end\n        repeat (5)\n            change y by (3)\n        end\n        repeat (5)\n            change y by (-1)\n        end\n        wait (2) seconds\n        repeat (15)\n            change y by (7)\n        end\n        hide\n    end\n    if <(Costume) > [0]> then\n        hide\n        stop [this script v]\n    end\nend\n\n@Sun\n\nwhen flag clicked\nset [color v] effect to (25)\ngo to [front v] layer\nset [ghost v] effect to (10)\nshow\n\nwhen flag clicked\nset size to (315) %\ngo to x: (25) y: (4)\nforever\n    wait (2) seconds\n    repeat (10)\n        change size by (2)\n        wait (0.05) seconds\n    end\n    wait (2) seconds\n    repeat (10)\n        change size by (-2)\n        wait (0.05) seconds\n    end\nend\n\n