Weird Platformer

Instructions: Arrow keys to move. \nUp arrow to jump. Rest is explained in game.\nIt has bouncies, lava, machine guns, blasters, portals, gravity changers, and MUCH MORE!!!!!!!!!!!!\n\nREAD THE NOTES!!! IT WILL HELP!!!\n----------------------------------------------------------------------------------------------\nCurrent Record: First Place: lolsniki with 3 deaths\nSecond Place: 5 deaths by LuckyBlock58193\n

@Stage\n\nwhen flag clicked\nforever\n    play sound [PVZ2 lost  city v] until done\nend\n\n@Ball\n\nwhen flag clicked\nforever\n    if <touching color (#6600cc)?> then\n        go to (portal 2 v)\n        wait until <not <touching color (#6600cc)?>>\n    end\nend\n\nwhen flag clicked\nforever\n    if <key (r v) pressed?> then\n        start sound [respawn v]\n        set [yv v] to [0]\n        go to x: (-212) y: (-160)\n        change [deaths v] by (0.5)\n        wait until <not <key (r v) pressed?>>\n    end\nend\n\nwhen I receive [gravity v]\nrepeat (10)\n    change y by (25)\nend\n\nwhen I receive [teleport v]\ngo to x: (pick random (-235) to (235)) y: (pick random (-175) to (175))\n\nwhen flag clicked\nforever\n    set [x v] to (x position)\n    set [y v] to (y position)\nend\n\nwhen flag clicked\nset pen size to (5)\nerase all\npen up\nset pen color to (#dddede)\nswitch backdrop to (backdrop1 v)\nset [ghost v] effect to (0)\nset [deaths v] to [0]\nset [game v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nshow variable [deaths v]\ngo to x: (-212) y: (-158)\npoint in direction (90)\nhide\nwait (5) seconds\nshow\nforever\n    if <(game) = [1]> then\n        change [yv v] by (-0.5)\n        if <key (right arrow v) pressed?> then\n            change [xv v] by (0.7)\n            point in direction (90)\n        end\n        if <key (left arrow v) pressed?> then\n            change [xv v] by (-0.7)\n            point in direction (90)\n        end\n        set [xv v] to ((Xv) * (0.9))\n        change x by (Xv)\n        if <touching color (#000000)?> then\n            change y by (1)\n            if <touching color (#000000)?> then\n                change y by (1)\n                if <touching color (#000000)?> then\n                    change y by (1)\n                    if <touching color (#000000)?> then\n                        change y by (1)\n                        if <touching color (#000000)?> then\n                            change y by (1)\n                            if <touching color (#000000)?> then\n                                change x by ((Xv) * (-1))\n                                change x by (-1)\n                                change y by (-5)\n                                change x by (1)\n                                if <key (up arrow v) pressed?> then\n                                    start sound [jump v]\n                                    if <(Xv) > [0]> then\n                                        set [xv v] to [-8]\n                                    else\n                                        set [xv v] to [8]\n                                    end\n                                    set [yv v] to [10]\n                                else\n                                    set [xv v] to [0]\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n        change y by (Yv)\n        if <touching color (#000000)?> then\n            change y by ((Yv) * (-1))\n            set [yv v] to [0]\n        end\n        change y by (-1)\n        if <touching color (#000000)?> then\n            if <key (up arrow v) pressed?> then\n                start sound [jump v]\n                set [yv v] to [10]\n            end\n        end\n        change y by (1)\n        if <touching color (#00ff55)?> then\n            start sound [next level v]\n            set [yv v] to [0]\n            go to x: (-212) y: (-158)\n            switch backdrop to (next backdrop v)\n            change [level v] by (1)\n        end\n        if <touching color (#00ffff)?> then\n            start sound [jump v]\n            set [yv v] to [10]\n        end\n        if <touching color (#003fff)?> then\n            start sound [jump v]\n            set [yv v] to [20]\n        end\n        if <touching color (#ff0000)?> then\n            start sound [die v]\n            repeat (10)\n                change [ghost v] effect by (10)\n            end\n            set [yv v] to [0]\n            set [xv v] to [0]\n            go to x: (-212) y: (-158)\n            set [ghost v] effect to (0)\n            change [deaths v] by (1)\n        end\n    end\nend\n\n@Title\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nwait (5) seconds\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nswitch backdrop to (backdrop1 v)\nhide\n\n@blaster\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop20 v]\ngo to x: (198) y: (-58)\nshow\n\nwhen backdrop switches to [backdrop21 v]\nhide\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (191) y: (-172)\nshow\n\nwhen backdrop switches to [backdrop25 v]\nhide\n\n@blast\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop20 v]\ngo to x: (155) y: (-15)\nshow\nforever\n    glide (5) secs to x: (-208) y: (-23)\n    hide\n    go to x: (155) y: (-15)\n    show\nend\n\nwhen backdrop switches to [backdrop21 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (150) y: (-130)\nshow\nforever\n    glide (2) secs to x: (-199) y: (-131)\n    hide\n    go to x: (150) y: (-130)\n    show\nend\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\n@machine gun\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (5) y: (-10)\nshow\n\nwhen backdrop switches to [backdrop22 v]\nhide\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (-9) y: (-32)\nshow\n\nwhen backdrop switches to [backdrop25 v]\nhide\n\n@MG blast1\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (264) y: (-53)\nshow\nforever\n    glide (2) secs to x: (-86) y: (-53)\n    hide\n    go to x: (264) y: (-53)\n    show\nend\n\nwhen backdrop switches to [backdrop22 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (260) y: (-75)\nshow\nforever\n    glide (2) secs to x: (-75) y: (-79)\n    hide\n    go to x: (259) y: (-76)\n    show\nend\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\n@MG blast2\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (264) y: (-53)\nshow\nwait (1) seconds\nforever\n    glide (2) secs to x: (-86) y: (-53)\n    hide\n    go to x: (264) y: (-53)\n    show\nend\n\nwhen backdrop switches to [backdrop22 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (260) y: (-75)\nshow\nwait (1) seconds\nforever\n    glide (2) secs to x: (-75) y: (-79)\n    hide\n    go to x: (259) y: (-76)\n    show\nend\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\n@Yes\n\nwhen backdrop switches to [backdrop29 v]\ngo to x: (-38) y: (-3)\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (150) %\n    else\n        set size to (100) %\n    end\nend\n\nwhen this sprite clicked\nhide\nswitch backdrop to (backdrop28 v)\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop30 v]\nhide\n\n@MG blast3\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (264) y: (-53)\nshow\nwait (2) seconds\nforever\n    glide (2) secs to x: (-86) y: (-53)\n    hide\n    go to x: (264) y: (-53)\n    show\nend\n\nwhen backdrop switches to [backdrop22 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (260) y: (-75)\nshow\nwait (2) seconds\nforever\n    glide (2) secs to x: (-75) y: (-79)\n    hide\n    go to x: (259) y: (-76)\n    show\nend\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\n@MG blast4\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop21 v]\ngo to x: (264) y: (-53)\nshow\nwait (3) seconds\nforever\n    glide (2) secs to x: (-86) y: (-53)\n    hide\n    go to x: (264) y: (-53)\n    show\nend\n\nwhen backdrop switches to [backdrop22 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop24 v]\ngo to x: (260) y: (-75)\nshow\nwait (3) seconds\nforever\n    glide (2) secs to x: (-75) y: (-79)\n    hide\n    go to x: (259) y: (-76)\n    show\nend\n\nwhen backdrop switches to [backdrop25 v]\nhide\nstop [other scripts in sprite v]\n\n@Portal 1\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop22 v]\ngo to x: (-3) y: (-135)\nshow\n\nwhen backdrop switches to [backdrop23 v]\nhide\n\n@Portal 2\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop22 v]\ngo to x: (161) y: (119)\nshow\n\nwhen backdrop switches to [backdrop23 v]\nhide\n\n@No\n\nwhen backdrop switches to [backdrop29 v]\ngo to x: (169) y: (4)\nshow\nforever\n    if <touching (mouse-pointer v)?> then\n        set size to (150) %\n    else\n        set size to (100) %\n    end\nend\n\nwhen this sprite clicked\nswitch backdrop to (backdrop30 v)\nhide\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop28 v]\nhide\n\n@Door 1\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nhide\nswitch backdrop to (backdrop13 v)\n\nwhen backdrop switches to [backdrop32 v]\nhide\n\nwhen backdrop switches to [backdrop1 v]\nhide\n\nwhen backdrop switches to [backdrop31 v]\nshow\n\n@Door 2\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nhide\nswitch backdrop to (backdrop32 v)\n\nwhen backdrop switches to [backdrop13 v]\nhide\n\nwhen backdrop switches to [backdrop1 v]\nhide\n\nwhen backdrop switches to [backdrop31 v]\nshow\n\n@Door 3\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nhide\nswitch backdrop to (backdrop1 v)\n\nwhen backdrop switches to [backdrop13 v]\nhide\n\nwhen backdrop switches to [backdrop32 v]\nhide\n\nwhen backdrop switches to [backdrop31 v]\nshow\n\n@Gravity\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop32 v]\ngo to x: (263) y: (-113)\nshow\n\nwhen this sprite clicked\nbroadcast (Gravity v)\n\nwhen backdrop switches to [backdrop33 v]\nhide\n\n@Teleport\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop33 v]\ngo to x: (203) y: (272)\nshow\n\nwhen this sprite clicked\nbroadcast (Teleport v)\n\nwhen backdrop switches to [backdrop34 v]\nhide\n\n@Bob the tomato\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop34 v]\ngo to x: (191) y: (94)\nshow\nforever\n    glide (2) secs to x: (-134) y: (-18)\n    glide (2) secs to x: (202) y: (-89)\n    glide (2) secs to x: (-145) y: (131)\n    repeat (5)\n        go to x: (pick random (-235) to (235)) y: (pick random (-175) to (175))\n        wait (2) seconds\n    end\nend\n\nwhen backdrop switches to [backdrop35 v]\nstop [other scripts in sprite v]\nhide\n\nwhen backdrop switches to [backdrop45 v]\nshow\nswitch costume to (normal v)\ngo to x: (179) y: (-78)\nrepeat until <(backdrop [name v]) = [backdrop46]>\n    glide (1) secs to x: (-134) y: (-18)\n    glide (1) secs to x: (-145) y: (131)\n    glide (1) secs to x: (202) y: (-89)\n    wait (1) seconds\n    switch costume to (explode!!! v)\n    wait (1) seconds\n    switch costume to (normal v)\nend\n\nwhen backdrop switches to [backdrop46 v]\nhide\nstop [other scripts in sprite v]\n\n@Weird Doorway\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop41 v]\ngo to x: (72) y: (58)\nshow\nforever\n    go to [front v] layer\n    switch costume to (costume2 v)\n    wait (0.1) seconds\n    switch costume to (costume1 v)\nend\n\nwhen backdrop switches to [backdrop42 v]\nhide\n\n@Fake Wall\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop41 v]\ngo to x: (28) y: (-21)\nshow\nforever\n    switch costume to (costume1 v)\n    wait (3) seconds\n    switch costume to (costume2 v)\n    wait (1) seconds\nend\n\nwhen backdrop switches to [backdrop42 v]\nhide\n\n@Wenhao\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop55 v]\nswitch costume to (normal v)\ngo to x: (308) y: (40)\nshow\nforever\n    glide (1) secs to x: (-193) y: (3)\n    glide (1) secs to x: (64) y: (227)\n    glide (1) secs to x: (201) y: (92)\n    switch costume to (fire v)\n    repeat (2)\n        go to x: (pick random (-235) to (235)) y: (pick random (-175) to (175))\n    end\n    switch costume to (normal v)\nend\n\nwhen backdrop switches to [backdrop56 v]\nhide\nstop [other scripts in sprite v]\n\n@Toyota Airlines\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop58 v]\nswitch costume to (normal v)\ngo to x: (108) y: (73)\nshow\nforever\n    repeat (pick random (1) to (5))\n        glide (2) secs to x: (-34) y: (-52)\n        wait (1) seconds\n        glide (1) secs to x: (108) y: (73)\n    end\n    switch costume to (explosion v)\n    glide (0.5) secs to x: (pick random (-235) to (235)) y: (pick random (-175) to (175))\n    switch costume to (normal v)\nend\n\nwhen backdrop switches to [backdrop59 v]\nhide\n\n@Train Boy\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [backdrop61 v]\nhide\nstop [other scripts in sprite v]\n\nwhen backdrop switches to [backdrop59 v]\nset size to (100) %\ngo to x: (109) y: (-105)\nshow\nrepeat until <not <(backdrop [name v]) = [backdrop59]>>\n    wait (pick random (1) to (5)) seconds\n    say [I like trains] for (2) seconds\n    broadcast (TRAINS v)\nend\nshow\nset size to (150) %\ngo to x: (279) y: (-73)\nrepeat until <not <(backdrop [name v]) = [backdrop60]>>\n    wait (pick random (4) to (10)) seconds\n    say [I like trains] for (2) seconds\n    broadcast (TRAINS v)\nend\n\nset size to (100) %\ngo to x: (109) y: (-105)\nshow\nrepeat until <not <(backdrop [name v]) = [backdrop59]>>\n    wait (pick random (1) to (5)) seconds\n    say [I like trains] for (2) seconds\n    broadcast (TRAINS v)\nend\n\nwhen backdrop switches to [backdrop60 v]\nshow\nset size to (150) %\ngo to x: (279) y: (-73)\nrepeat until <not <(backdrop [name v]) = [backdrop60]>>\n    wait (pick random (4) to (10)) seconds\n    say [I like trains] for (2) seconds\n    broadcast (TRAINS v)\nend\n\n@Train\n\nwhen flag clicked\nhide\n\nwhen I receive [trains v]\nif <(backdrop [name v]) = [backdrop59]> then\n    switch costume to (front v)\n    set size to (100) %\n    go to x: (431) y: (93)\n    show\n    glide (0.3) secs to x: (10) y: (93)\n    switch costume to (middle v)\n    glide (0.3) secs to x: (-341) y: (87)\n    switch costume to (back v)\n    hide\nend\nif <(backdrop [name v]) = [backdrop60]> then\n    show\n    set size to (105) %\n    switch costume to (front v)\n    go to x: (431) y: (89)\n    show\n    glide (0.3) secs to x: (10) y: (89)\n    switch costume to (middle v)\n    glide (0.3) secs to x: (-341) y: (83)\n    switch costume to (back v)\n    hide\nend\n\nwhen backdrop switches to [backdrop60 v]\nstop [other scripts in sprite v]\nhide\n\n@Electro Wizard\n\nwhen flag clicked\nhide\nswitch costume to (normal v)\n\nwhen flag clicked\nforever\n    set [electrox v] to (x position)\n    set [electroy v] to (y position)\nend\n\nwhen backdrop switches to [backdrop64 v]\nrepeat until <(backdrop [name v]) = [Last Level]>\n    switch costume to (normal v)\n    wait (3) seconds\n    show\n    set y to (211)\n    set x to ((x) + (-20))\n    repeat until <<touching color (#000000)?> or <touching (ball v)?>>\n        change y by (-20)\n    end\n    switch costume to (zap v)\n    wait (1) seconds\n    broadcast (ZAP v)\nend\nhide\n\n@Zap\n\nwhen flag clicked\nhide\n\nwhen I receive [zap v]\nshow\ngo to x: ((ElectroX) - (35)) y: ((ElectroY) + (19))\npoint towards (ball v)\nturn left (180) degrees\nwait (1) seconds\nhide\n\n@Zap2\n\nwhen I receive [zap v]\nshow\ngo to x: ((ElectroX) - (-57)) y: ((ElectroY) + (26))\npoint towards (ball v)\nwait (1) seconds\nhide\n\nwhen flag clicked\nhide\n\n