Kitchen 2 <a platformer> 

Instructions: WASD keys or arrow keys to move.\nFloor, drawers, and toaster are solid.\nAvoid forks, knifes, toast and stove.\nYou can stand on the handle of the knife.\nAll levels are possible.\n75 loves for part 3\nPart 1: https://scratch.mit.edu/projects/598686504/\nFollow me at my profile @Tao196\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nHI. If you see this, and you think the background is too boring, you can suggest me in the comments!

@Stage\n\n@player\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nSetup\n\nwhen I receive [you lose v]\nstop [other scripts in sprite v]\nset [lose? v] to [1]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nset [x v] to [0]\nset [y v] to [0]\ngo to x: (-230) y: (-50)\nshow\nbroadcast (Game Loop v)\nset [lose? v] to [0]\n\ndefine Check touching solid\nif <<<<touching (ground v)?> or <touching (handle v)?>> or <touching (handle2 v)?>> or <<touching (toaster1 v)?> or <<touching (toaster2 v)?> or <<touching (toaster3 v)?> or <touching (toaster4 v)?>>>>> then\n    set [touching v] to [1]\nelse\n    set [touching v] to [0]\nend\n\nwhen I receive [next level v]\nset [y v] to [0]\nset [x v] to [0]\ngo to x: (-190) y: (0)\n\ndefine Left Right collision and wall jump\nchange y by (-1)\nCheck touching solid\nif <(touching) > [0]> then\n    change y by (1)\n    Check touching solid\n    if <(touching) > [0]> then\n        change y by (1)\n        Check touching solid\n        if <(touching) > [0]> then\n            change y by (1)\n            Check touching solid\n            if <(touching) > [0]> then\n                change y by (1)\n                Check touching solid\n                if <(touching) > [0]> then\n                    change y by (1)\n                    Check touching solid\n                    if <(touching) > [0]> then\n                        change x by ((X) * (-1))\n                        change y by (-5)\n                        if <<<mouse down?> and <(y position) < (mouse y)>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n                            if <(X) > [0]> then\n                                set [x v] to [-7]\n                            else\n                                set [x v] to [7]\n                            end\n                            set [y v] to [14]\n                        else\n                            set [x v] to [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Left Right cotrols\nif <<<mouse down?> and <(x position) > (mouse x)>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n    change [x v] by (-1)\nend\nif <<<mouse down?> and <(x position) < (mouse x)>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> then\n    change [x v] by (1)\nend\nset [x v] to ((X) * (0.9))\nchange x by (X)\n\ndefine Up controls and collisions\nchange y by (-1)\nCheck touching solid\nif <(touching) > [0]> then\n    if <<<mouse down?> and <(y position) < (mouse y)>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n        start sound [Jump v]\n        set [y v] to [15]\n    end\nend\nchange y by (1)\nchange [y v] by (-1)\nchange y by (Y)\nCheck touching solid\nif <(touching) > [0]> then\n    change y by ((Y) * (-1))\n    set [y v] to [0]\nend\n\ndefine Check - Death / Win\nif <(x position) > [230]> then\n    change [level v] by (1)\n    broadcast (next level v)\nend\nif <(y position) < [-170]> then\n    start sound [Oops v]\n    broadcast (You Lose v)\nend\n\ndefine Setup\nset [level v] to [1]\nshow\ngo to [front v] layer\nset size to (100) %\nclear graphic effects\nswitch costume to (egg-a v)\npoint in direction (90)\ngo to x: (-190) y: (50)\nset drag mode [not draggable v]\nset [lose? v] to [0]\nbroadcast (Game Loop v)\n\nwhen I receive [game loop v]\nclear graphic effects\nforever\n    Left Right cotrols\n    Left Right collision and wall jump\n    Up controls and collisions\n    Check - Death / Win\nend\n\ndefine Fix Collision in Direction (dir)\nset [temp v] to (direction)\nset [distance v] to [1]\npoint in direction (dir)\nrepeat (64)\n    Check touching solid\n    if <(touching) < [1]> then\n        point in direction (temp)\n        stop [this script v]\n    end\n    move (distance) steps\n    change [distance v] by (1)\n    turn left (180) degrees\nend\n\nwhen I receive [fix collision v]\nFix Collision in Direction [0]\n\nwhen flag clicked\n\nwhen I receive [you lose v]\nbroadcast (Fix collision v)\n\nwhen I receive [next level v]\nbroadcast (Fix collision v)\n\nbroadcast (Fix collision v)\n\nwhen I receive [game loop v]\nforever\n    Check touching solid\n    if <(touching) > [0]> then\n        broadcast (Fix collision v)\n    end\nend\n\n@ground\n\nwhen flag clicked\ngo to [back v] layer\ngo to x: (0) y: (0)\nswitch costume to (level1 v)\n\nwhen I receive [next level v]\ngo to [back v] layer\nnext costume\n\n@Dnager\n\nwhen I receive [next level v]\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\nforever\n    go to [back v] layer\nend\n\nwhen I receive [next level v]\nif <(Level) = [2]> then\n    hide\nend\nif <(Level) = [3]> then\n    show\n    switch costume to (costume7 v)\nend\nif <(Level) = [4]> then\n    show\n    switch costume to (costume4 v)\nend\nif <(Level) = [5]> then\n    show\n    switch costume to (costume2 v)\nend\nif <(Level) = [6]> then\n    show\n    switch costume to (costume3 v)\nend\nif <(Level) = [7]> then\n    hide\nend\nif <(Level) = [9]> then\n    show\n    switch costume to (costume5 v)\nend\nif <(Level) = [10]> then\n    show\n    switch costume to (costume6 v)\nend\nif <(Level) = [11]> then\n    show\n    switch costume to (costume8 v)\n    go to [front v] layer\nend\n\nforever\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        if <(Lose?) = [0]> then\n            broadcast (You Lose v)\n        end\n    end\nend\n\nwhen flag clicked\n\nif <(Level) = [5]> then\nif <(Level) = [8]> then\n    show\n    switch costume to (costume2 v)\nend\nif <(Level) = [9]> then\n    show\n    switch costume to (costume3 v)\nend\n\nforever\n\ngo to x: (36) y: (28)\n\nif <(Level) = [10]> then\n    hide\nend\n\n@Knife1\n\nwhen I receive [next level v]\nset [speed y v] to [0]\nif <(Level) = [2]> then\n    switch costume to (costume2 v)\n    point in direction (90)\n    set size to (100) %\n    go to x: (-130) y: (73)\n    create clone of (_myself_ v)\n    stop [this script v]\nend\n\nwhen I start as a clone\nshow\nset [y v] to (y position)\nset [speed y v] to [-1]\nforever\n    Chomp\nend\n\nif <<(Level) = [2]> or <(Level) = [7]>> then\nend\n\nMove Vertical\n\nFix\n\nwhen flag clicked\nstop [other scripts in sprite v]\nhide\nstop [this script v]\n\ndefine Fix\nrepeat until <not <touching (ground v)?>>\n    change y by (1)\nend\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        if <(Lose?) = [0]> then\n            broadcast (You Lose v)\n        end\n    end\nend\n\ndefine Move Vertical\n\nrepeat ([abs v] of () )\nend\n\nstop [this script v]\n\nwhen I start as a clone\nforever\n    if <(Level) = [3]> then\n        delete this clone\n    end\nend\n\nstop [other scripts in sprite v]\n\nshow\npoint in direction (0)\nset size to (80) %\n\nshow\n\nset [touching v] to [0]\n\nset [level v] to [3]\n\nchange x by (10)\n\nif <touching (player v)?> then\n\nswitch costume to (costume2 v)\n\nswitch costume to (costume1 v)\n\nbroadcast (Fix collision v)\n\nwhen I receive [next level v]\nset [speed y v] to [0]\nif <(Level) = [7]> then\n    switch costume to (costume2 v)\n    point in direction (90)\n    set size to (100) %\n    go to x: (-175) y: (73)\n    create clone of (_myself_ v)\n    go to x: (120) y: (73)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nforever\n    if <(Level) = [8]> then\n        delete this clone\n    end\nend\n\ngo to x: (100) y: (85)\ncreate clone of (_myself_ v)\n\nsay [Hello!] for (2) seconds\n\ndefine Chomp\nrepeat until <(Touching) > [0]>\n    change [speed y v] by (-3)\n    change y by (speed y)\n    if <touching (ground v)?> then\n        Fix\n        set [touching v] to [1]\n    end\nend\nset [touching v] to [0]\nstart sound [Crunch v]\nwait (1) seconds\nrepeat until <(y position) > (y)>\n    change y by (4)\nend\nwait (2) seconds\nset [speed y v] to [0]\n\n@toaster1\n\nwhen flag clicked\nset [toaster # v] to []\nhide\n\nwait (1) seconds\n\nwhen I receive [next level v]\nif <(Level) = [2]> then\n    stop [other scripts in sprite v]\n    show\n    go to x: (170) y: (-70)\n    show\n    switch costume to (no v)\n    repeat until <(Level) = [3]>\n        set [toaster # v] to [1]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\nend\n\nwhen I receive [next level v]\nif <(Level) = [5]> then\n    stop [other scripts in sprite v]\n    go to x: (-121) y: (-67)\n    show\n    switch costume to (no v)\n    repeat until <(Level) = [6]>\n        set [toaster # v] to [1]\n        create clone of (toast v)\n        wait (2) seconds\n    end\nend\n\nwait (1) seconds\n\nforever\n\nwhen I receive [next level v]\nif <(Level) = [8]> then\n    stop [other scripts in sprite v]\n    go to x: (-99) y: (-68)\n    show\n    switch costume to (no v)\n    repeat until <(Level) = [9]>\n        set [toaster # v] to [1]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\nend\nhide\n\nwhen I receive [next level v]\nif <(Level) = [7]> then\n    stop [other scripts in sprite v]\n    go to x: (28) y: (-66)\n    show\n    switch costume to (no v)\n    repeat until <(Level) = [8]>\n        set [toaster # v] to [1]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\nend\n\n@toaster2\n\nwhen flag clicked\nswitch costume to (no v)\nhide\n\nforever\n    create clone of (toast v)\n    set [toaster # v] to [2]\n    wait (2) seconds\nend\n\nwhen I receive [next level v]\nif <(Level) = [5]> then\n    show\n    go to x: (167) y: (-65)\n    switch costume to (no v)\n    wait (1) seconds\n    repeat until <(Level) = [6]>\n        set [toaster # v] to [2]\n        create clone of (toast v)\n        wait (2) seconds\n    end\n    stop [this script v]\nend\n\nforever\n\nstop [this script v]\n\ngo to x: (166) y: (-64)\n\nwhen I receive [next level v]\nif <(Level) = [8]> then\n    stop [other scripts in sprite v]\n    show\n    go to x: (3) y: (-68)\n    switch costume to (no v)\n    wait (1) seconds\n    repeat until <(Level) = [9]>\n        set [toaster # v] to [2]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\n    hide\n    stop [this script v]\nend\n\nwhen I receive [next level v]\nif <(Level) = [9]> then\n    stop [other scripts in sprite v]\n    hide\n    stop [this script v]\nend\n\nforever\n\nwhen I receive [next level v]\nif <(Level) = [6]> then\n    hide\n    stop [other scripts in sprite v]\nend\n\nforever\n\nshow\ngo to x: (150) y: (-64)\nswitch costume to (no v)\nwait (1) seconds\nrepeat until <(Level) = [11]>\n    set [toaster # v] to [2]\n    create clone of (toast v)\n    wait (2) seconds\nend\n\nstop [this script v]\n\n@toaster3\n\nwhen flag clicked\nswitch costume to (no v)\nhide\n\nforever\n    create clone of (toast v)\n    set [toaster # v] to [2]\n    wait (2) seconds\nend\n\nwhen I receive [next level v]\n\nforever\n\nstop [this script v]\n\ngo to x: (166) y: (-64)\n\nwhen I receive [next level v]\nif <(Level) = [8]> then\n    stop [other scripts in sprite v]\n    show\n    go to x: (100) y: (-67)\n    switch costume to (no v)\n    wait (2) seconds\n    repeat until <(Level) = [9]>\n        set [toaster # v] to [3]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\n    hide\n    stop [this script v]\nend\n\nwhen I receive [next level v]\nif <(Level) = [6]> then\n    hide\nend\n\nforever\n\nshow\ngo to x: (150) y: (-64)\nswitch costume to (no v)\nwait (1) seconds\nrepeat until <(Level) = [11]>\n    set [toaster # v] to [2]\n    create clone of (toast v)\n    wait (2) seconds\nend\n\nstop [this script v]\n\nwhen I receive [next level v]\nif <(Level) = [9]> then\n    stop [other scripts in sprite v]\n    hide\n    stop [this script v]\nend\n\n@toaster4\n\nwhen flag clicked\nswitch costume to (no v)\nhide\n\nforever\n    create clone of (toast v)\n    set [toaster # v] to [2]\n    wait (2) seconds\nend\n\nwhen I receive [next level v]\nif <(Level) = [8]> then\n    show\n    go to x: (194) y: (-68)\n    switch costume to (no v)\n    wait (3) seconds\n    repeat until <(Level) = [9]>\n        set [toaster # v] to [4]\n        create clone of (toast v)\n        wait (2.5) seconds\n    end\n    stop [this script v]\nend\n\nforever\n\nstop [this script v]\n\ngo to x: (166) y: (-64)\n\nwhen I receive [next level v]\nif <(Level) = [6]> then\n    hide\n    stop [other scripts in sprite v]\nend\n\nforever\n\nshow\ngo to x: (150) y: (-64)\nswitch costume to (no v)\nwait (1) seconds\nrepeat until <(Level) = [11]>\n    set [toaster # v] to [2]\n    create clone of (toast v)\n    wait (2) seconds\nend\n\nstop [this script v]\n\nwhen I receive [next level v]\nif <(Level) = [9]> then\n    hide\n    stop [this script v]\nend\n\nwhen I receive [next level v]\nif <(Level) = [9]> then\n    hide\n    stop [other scripts in sprite v]\nend\n\n@toast\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\ngo to [back v] layer\nshow\nif <(toaster #) = [1]> then\n    go to (toaster1 v)\nelse\n    if <(toaster #) = [2]> then\n        go to (toaster2 v)\n    else\n        if <(toaster #) = [3]> then\n            go to (toaster3 v)\n        else\n            go to (toaster4 v)\n        end\n    end\nend\nset [toaster # v] to []\nchange y by (2)\nset [sy v] to [20]\nforever\n    turn right (15) degrees\nend\n\nwhen I start as a clone\nrepeat until <touching (ground v)?>\n    change [sy v] by (-1)\n    change y by (sy)\nend\ndelete this clone\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        if <(Lose?) = [0]> then\n            broadcast (You Lose v)\n        end\n    end\nend\n\nwhen I receive [next level v]\nhide\ndelete this clone\n\n@Handle\n\nwhen I receive [next level v]\nset [speed y v] to [0]\nif <(Level) = [2]> then\n    switch costume to (costume2 v)\n    point in direction (90)\n    set size to (100) %\n    go to x: (-130) y: (73)\n    create clone of (_myself_ v)\n    stop [this script v]\nend\n\nwhen I start as a clone\nshow\nset [y v] to (y position)\nset [speed y v] to [-1]\nif <<(Level) = [2]> or <(Level) = [7]>> then\n    forever\n        Chomp\n    end\nend\n\nwhen flag clicked\nhide\n\ndefine Fix\nrepeat until <not <touching (ground v)?>>\n    change y by (1)\nend\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        set [costume v] to (costume [number v])\n        switch costume to (costume2 v)\n        if <touching (player v)?> then\n            broadcast (Fix collision v)\n        end\n        switch costume to (costume)\n    end\nend\n\nbroadcast (You Lose v)\n\ndefine Move Vertical\nchange y by (speed y)\nswitch costume to (costume3 v)\nif <touching (ground v)?> then\n    Fix\n    set [touching v] to [1]\nend\nswitch costume to (costume2 v)\n\nrepeat ([abs v] of (speed y) )\n    change y by (-1)\nend\nif <touching (ground v)?> then\n    set [touching v] to [1]\n    switch costume to (costume2 v)\n    stop [this script v]\nend\n\nwhen I start as a clone\nforever\n    if <(Level) = [3]> then\n        delete this clone\n    end\nend\n\nstop [other scripts in sprite v]\n\nshow\npoint in direction (0)\nset size to (80) %\n\nshow\n\nset [touching v] to [0]\n\nset [level v] to [3]\n\nchange x by (10)\n\nif <touching (player v)?> then\n\nswitch costume to (costume1 v)\n\nwhen I start as a clone\nforever\n    if <(Level) = [8]> then\n        delete this clone\n    end\nend\n\nwhen I receive [next level v]\nset [speed y v] to [0]\nif <(Level) = [7]> then\n    switch costume to (costume2 v)\n    point in direction (90)\n    set size to (100) %\n    go to x: (-175) y: (73)\n    create clone of (_myself_ v)\n    go to x: (120) y: (73)\n    create clone of (_myself_ v)\nend\n\ngo to (knife1 v)\n\ndefine Chomp\nrepeat until <(Touching) > [0]>\n    change [speed y v] by (-3)\n    Move Vertical\nend\nset [touching v] to [0]\nFix\nwait (1) seconds\nrepeat until <(y position) > (y)>\n    change y by (4)\nend\nwait (2) seconds\nset [speed y v] to [0]\n\nrepeat until <(Touching) > [0]>\n    change [speed y v] by (-3)\n    change y by (speed y)\n    if <touching (ground v)?> then\n        Fix\n        set [touching v] to [1]\n    end\nend\nset [touching v] to [0]\nstart sound [Crunch v]\nwait (1) seconds\nrepeat until <(y position) > (y)>\n    change y by (4)\nend\nwait (2) seconds\nset [speed y v] to [0]\n\n@words\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\n\ngo to x: (36) y: (28)\n\nforever\n\ngo [forward v] (2) layers\n\n@Pic\n\nshow\ngo to x: (0) y: (0)\ngo to [front v] layer\n\nwhen flag clicked\nhide\n\n@Empty\n\nwhen I receive [next level v]\nif <(Level) = [10]> then\n    show\n    forever\n        if <touching (player v)?> then\n            repeat (4)\n                change [ghost v] effect by (25)\n            end\n        else\n            repeat (4)\n                change [ghost v] effect by (-25)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [next level v]\nif <(Level) = [11]> then\n    hide\nend\n\n