A normal Platformer (not)

Instructions: *READ TO BOTTOM*\nI will try to make daily updates, but Flash gets laggy after too much. :(\npress Ctrl(or your equivalent on your OS)+M to reduce lag\nThe icon in the intro is the favicon for my website \narrow keys or wasd to move. (you can also use space to jump).\nr to reset, s to exit Easter egg\nthere is a secret boss every 15 levels\nIf you set the highscore to 0, comment to be featured on the credits page and get followed (maybe)\nSea green is bouncy, blue teleports you to orange, green teleports you to pink, dark pink moves you right, purple moves you left.\n*For portals on ground, if it doesn't teleport you, walk a bit.\nThe Blue and orange portals were inspired By Portal and Portal 2\nMost mechanic has 4 levels based off of it. The first is a tutorial, the next is more difficult, and the last 2 are challenging.\nThe exception is portals and conveyor belts, they are later in the game, so you will understand them faster.\nPlease report any bugs\nI will try to reply to any comments longer than 1 word.\neven though it is a little laggy, DO NOT use phosphorous or sulfurous.\ncredit to @griffpatch_tutor for the physics script

@Stage\n\nwhen I receive [secret! v]\nswitch backdrop to (terces v)\nset [level v] to [0]\nbroadcast (start v)\n\nwhen I receive [i win v]\nstop [other scripts in stage v]\n\nwhen I receive [start v]\nshow\nforever\n    switch backdrop to ((level) + (3))\nend\n\nwhen I receive [start v]\nforever\n    play sound [Super Mario bros main theme backwards.mp3 v] until done\nend\n\n@player\n\ndefine None\nset [speed y v] to (height)\n\nwhen flag clicked\nset [deaths v] to [0]\nset [level v] to [1]\nset [frame v] to [0]\ngo to x: (-195) y: (116)\nset [speed y v] to [0]\nset rotation style [left-right v]\nhide\n\ndefine die <>\nif <if satisfied> then\n    change [deaths v] by (1)\n    reset\nend\n\ndefine win <>\nif <if satisfied > then\n    change [level v] by (1)\n    if <(level) = [15]> then\n        change [level v] by (1)\n    end\n    reset\nend\n\nwhen I receive [start v]\nshow\nshow variable [level v]\nforever\n    if <<(level) > [1]> and <<(level) > ([backdrop # v] of [_stage_ v])> and <not >>> then\n        wait (0.1) seconds\n        if <<(level) > [1]> and <<(level) > ([backdrop # v] of [_stage_ v])> and <not >>> then\n            broadcast (I WIN v)\n            hide\n            go to x: (0) y: (0)\n        end\n    else\n        switch costume to (hitbox v)\n        special collisions\n        if <<(speed y) < [4]> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <key (space v) pressed?>>>> then\n            change [speed y v] by (-1)\n        else\n            change [speed y v] by (-2)\n        end\n        change y by (speed y)\n        Touch command <[0] < (speed y)>\n        set [speed x v] to ((speed x) * (0.7))\n        if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n            change [speed x v] by (2)\n        end\n        if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n            change [speed x v] by (-2)\n        end\n        if <(speed x) < [-0.5]> then\n            walk (-90) (speed x)\n        else\n            if <(speed x) > [0.5]> then\n                walk (90) (speed x)\n            else\n                set [frame v] to [0]\n            end\n        end\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <key (space v) pressed?>>> then\n            if <<(falling) < [3]> and <(jump key) = [0]>> then\n                jump (14)\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        die <(y position) < [-180]>\n        die <<not <touching (fireworks v)?>> and <touching color (#ff0000)?>>\n        die <key (r v) pressed?>\n        win <touching (goal v)?>\n        win <<key (s v) pressed?> and <(level) = [0]>>\n    end\nend\n\ndefine reset\nif <(level) = [12]> then\n    go to x: (-182) y: (-119)\nelse\n    go to x: (-195) y: (116)\nend\nset [speed y v] to [0]\n\ndefine None\nif <(level) = [9]> then\n    go to x: (99) y: (138)\nend\nif <(level) = [10]> then\n    if <(id) = [1]> then\n        go to x: (37) y: (135)\n    else\n        go to x: (166) y: (133)\n    end\nend\nif <(level) = [12]> then\n    go to x: (-143) y: (119)\nend\nif <(level) = [17]> then\n    go to x: (-79) y: (152)\nend\n\nwhen I receive [boss v]\nset [level v] to [15]\ngo to x: (-192) y: (130)\n\nwhen I receive [next v]\nchange [level v] by (1)\nreset\nif <(deaths) > [5]> then\n    change [deaths v] by (-5)\nelse\n    set [deaths v] to [0]\nend\n\ndefine None\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not < or <touching color (#000000)?>>>>\n    change [slope v] by (1)\n    change y by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\nend\nif <(speed) < [0]> then\n    change [frame v] by ((speed) / (-8))\nelse\n    change [frame v] by ((speed) / (8))\nend\n\ndefine Touch command <>\nchange [falling v] by (1)\nrepeat until <not < or <touching color (#000000)?>>>\n    set [speed y v] to [0]\n    if <<up?> or > then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling v] to [0]\n    end\nend\n\ndefine special collisions\nif <touching color (#003fff)?> then\n    portal (1)\nend\nif <touching color (#00cc44)?> then\n    portal (2)\nend\nif <touching color (#99ffbb)?> then\n    set [speed y v] to [30]\nend\nif <touching color (#330066)?> then\n    change [speed x v] by (-2)\nend\nif <touching color (#66004c)?> then\n    change [speed x v] by (2)\nend\nif <touching color (#00cccc)?> then\n    set [speed y v] to [10]\nend\nif <touching color (#ffff00)?> then\n    broadcast (Boss death v)\nend\nif <touching color (#ff00bf)?> then\n    change [level v] by (-1)\n    reset\nend\n\nwhen I receive [boss death v]\nhide\ngo to x: (0) y: (0)\n\nbroadcast (I WIN v)\n\nif  then\nend\n\nwhen I receive [next v]\nshow\n\n@goalS\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nforever\n    if <(level) = [14]> then\n        show\n        go to x: (-17) y: (120)\n        point in direction (180)\n    end\n    if <touching (player v)?> then\n        broadcast (BOSS v)\n    end\n    if <not <(level) = [14]>> then\n        hide\n    end\nend\n\nwhen I receive [boss v]\nhide\n\n@Start\n\nwhen this sprite clicked\nbroadcast (start v)\nhide\n\nwhen flag clicked\nhide\n\nwhen backdrop switches to [start screen v]\nshow\ngo to x: (0) y: (0)\n\nwhen backdrop switches to [terces v]\nhide\n\n@Win\n\nwhen flag clicked\nhide\nhide variable [☁ highscore v]\nhide variable [deaths v]\nhide variable [level v]\n\nwhen I receive [i win v]\nshow\nif <<(deaths) < (☁ HIGHSCORe)> and <not <(username) = [nailuj29]>>> then\n    set [☁ highscore v] to (deaths)\nend\nhide variable [level v]\nshow variable [☁ highscore v]\nshow variable [deaths v]\ngo to [front v] layer\ngo [backward v] (1) layers\nif <(☁ HIGHSCORe) = [0]> then\n    set [☁ highscore v] to [100000]\nend\n\n@Thumbnail\n\nwhen flag clicked\nhide\n\nwhen [1 v] key pressed\nshow\ngo to [front v] layer\nhide variable [level v]\nhide variable [deaths v]\nhide variable [☁ highscore v]\nstop [all v]\n\n@goal\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nshow\nforever\n    if <(level) = [0]> then\n        hide\n    end\n    if <(level) = [1 ]> then\n        show\n        go to x: (195) y: (6)\n    end\n    if <(level) = [2]> then\n        go to x: (200) y: (18)\n    end\n    if <(level) = [3]> then\n        go to x: (191) y: (20)\n    end\n    if <(level) = [4]> then\n        go to x: (104) y: (104)\n    end\n    if <(level) = [5]> then\n        go to x: (193) y: (-146)\n    end\n    if <(level) = [6]> then\n        go to x: (216) y: (-91)\n    end\n    if <(level) = [7]> then\n        go to x: (172) y: (86)\n    end\n    if <(level) = [8]> then\n        go to x: (217) y: (81)\n    end\n    if <(level) = [9]> then\n        go to x: (235) y: (-124)\n    end\n    if <(level) = [10]> then\n        go to x: (228) y: (-144)\n    end\n    if <(level) = [11]> then\n        go to x: (229) y: (-150)\n    end\n    if <(level) = [12]> then\n        go to x: (220) y: (76)\n    end\n    if <(level) = [13]> then\n        go to x: (220) y: (-114)\n    end\n    if <(level) = [14]> then\n        go to x: (188) y: (5)\n    end\n    if <(level) = [15]> then\n        hide\n    end\n    if <(level) = [16]> then\n        show\n        go to x: (205) y: (-149)\n    end\n    if <(level) = [17]> then\n        go to x: (196) y: (143)\n    end\n    if <(level) = [18]> then\n        go to x: (85) y: (49)\n    end\n    if <(level) = [19]> then\n        go to x: (203) y: (-136)\n    end\n    if <(level) = [20]> then\n        go to x: (203) y: (-136)\n    end\nend\n\nwhen I receive [i win v]\nhide\n\n@Boss\n\nwhen I receive [boss v]\nclear graphic effects\ngo to x: (114) y: (18)\nswitch costume to (costume1 v)\nshow\nset size to (100) %\nforever\n    move (10) steps\n    wait (1) seconds\n    move (-10) steps\n    wait (1) seconds\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [boss death v]\nnext costume\nstop [other scripts in sprite v]\nwait (0.5) seconds\nrepeat (50)\n    change [whirl v] effect by (25)\n    change size by (-2)\nend\nrepeat until <touching color (#000000)?>\n    change y by (-5)\nend\nhide\nbroadcast (next v)\n\n@intro\n\nwhen flag clicked\nset size to (100) %\npoint in direction (90)\nswitch backdrop to (intro v)\nshow\nclear graphic effects\ngo to x: (0) y: (0)\nrepeat (2)\n    repeat (10)\n        turn right (2) degrees\n        wait (0) seconds\n    end\n    change [color v] effect by (1)\n    change size by (-1)\n    repeat (10)\n        turn left (2) degrees\n        wait (0) seconds\n    end\n    change [color v] effect by (1)\n    change size by (-1)\n    repeat (10)\n        turn left (2) degrees\n        wait (0) seconds\n    end\n    change [color v] effect by (1)\n    change size by (-1)\n    repeat (10)\n        turn right (2) degrees\n        wait (0) seconds\n    end\n    change [color v] effect by (1)\n    change size by (-1)\nend\nswitch backdrop to (start screen v)\nbroadcast (INTRO OVER v)\nhide\n\n@Fireworks\n\nwhen flag clicked\ngo to x: (0) y: (-180)\nset [clone? v] to [0]\nset size to (100) %\nswitch costume to (costume1 v)\nhide\n\nwhen I start as a clone\nset [clone? v] to [1]\nshow\nset [color v] effect to (pick random (1) to (200))\nset x to (pick random (-240) to (240))\ngo to [front v] layer\nrepeat (pick random (18) to (36))\n    change y by (10)\nend\nnext costume\nstart sound [spiral v]\nrepeat (10)\n    change size by (4)\n    change [fisheye v] effect by (10)\n    change [ghost v] effect by (10)\n    change [pixelate v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [boss death v]\nrepeat (50)\n    if <(clone?) = [0 ]> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [secret! v]\nrepeat (50)\n    if <(clone?) = [0 ]> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [i win v]\nif <(clone?) = [0 ]> then\n    set [i v] to [0]\nend\nrepeat until <(i) = [50]>\n    if <(clone?) = [0 ]> then\n        create clone of (_myself_ v)\n        change [i v] by (1)\n    end\nend\n\n@button\n\nwhen I receive [intro over v]\ngo to x: (195) y: (-142)\nset [ghost v] effect to (100)\nshow\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nbroadcast (Secret! v)\n\n