~Cake Platformer~

Instructions:             Welcome to ~Cake Platformer~\n~My first platformer!\n+Arrow keys to move or WASD\n+ R to restart level + Press L for lag reduction.\n+Collect all the ingredients\n+ Enjoy!\n~Update 20/5/19- Bug fixes!\n+TRAILER FOR SEQUEL NOW OUT! https://scratch.mit.edu/projects/180612721/\n+Extra Levels now done!\n*200+ loves? Yay! Can we get 400 loves  and 4000 views? Thanks so much!    \n+ TOP LOVED!? Wow! thanks so much.\n+Curated on 14th October! Thanks @astar-rasta !\n+In the top 12 results when you search 'cake'! :D\n

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop2 v)\n\nwhen [space v] key pressed\nswitch backdrop to (backdrop1 v)\nbroadcast (start game v)\n\nwhen I receive [end v]\nforever\n    switch backdrop to (backdrop3 v)\nend\n\n@Sprite2\n\ndefine Ground contact <up>\nchange [fall v] by (1)\nrepeat until <not <<touching color (#99ffbb)?> or <touching (sprite4 v)?>>>\n    if <up> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [fall v] to [0]\n    end\n    set [y speed v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [steep v] to [0]\nrepeat until <<(steep) = [8]> or <not <<touching color (#99ffbb)?> or <touching color (#003fff)?>>>>\n    change y by (1)\n    change [steep v] by (1)\nend\nif <(steep) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (steep))\nend\n\nwhen I receive [start game v]\nforever\n    if <<<touching (_edge_ v)?> or <key (r v) pressed?>> or <touching color (#ff0000)?>> then\n        go to x: (-212) y: (65)\n        wait (1) seconds\n    end\nend\n\nwhen I receive [start game v]\nset rotation style [left-right v]\ngo to x: (0) y: (100)\nset [y speed v] to [0]\nset [fall v] to [11]\nforever\n    change [y speed v] by (-1)\n    change y by (y speed)\n    Ground contact <(y speed) > [0]>\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        Walk (-90) (-6)\n    end\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        Walk (90) (6)\n    end\n    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(fall) < [3]>> then\n        set [y speed v] to [12]\n    end\nend\n\nwhen I receive [start game v]\nshow\ngo to x: (-212) y: (65)\nswitch costume to (costume1 v)\nforever\n    wait (3) seconds\n    next costume\n    wait (0.3) seconds\n    next costume\nend\n\nwhen flag clicked\nhide\nforever\n    if <touching color (#ff0000)?> then\n        go to x: (-212) y: (65)\n    end\nend\n\ngo to x: (0) y: (0)\n\nwhen I receive [end v]\nhide\n\nwhen flag clicked\nforever\n    play sound [Star Wars Rey's Theme Song v] until done\nend\n\nwhen [x v] key pressed\nbroadcast (next level v)\n\n@Ground\n\nwhen I receive [next level v]\nwait (0.2) seconds\nif <[22] > (Level)> then\n    change [level v] by (1)\n    next costume\n    wait (1) seconds\nend\n\nwhen I receive [start game v]\nshow\ngo to x: (0) y: (1)\nswitch costume to (costume1 v)\nset [level v] to [1]\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    if <(Level) = [7]> then\n        broadcast (Flour v)\n        wait (5) seconds\n    end\n    if <(Level) = [10]> then\n        broadcast (Butter v)\n        wait (5) seconds\n    end\n    if <(Level) = [13]> then\n        broadcast (Egg v)\n        wait (10) seconds\n    end\n    if <(Level) = [20]> then\n        broadcast (Sugar v)\n        wait (3) seconds\n    end\n    if <(Level) = [22]> then\n        broadcast (Baking powder v)\n        wait (10) seconds\n    end\nend\n\nchange [level v] by (11)\n\nwhen I receive [end v]\nhide\n\nhide\n\n@Sprite1\n\nwhen flag clicked\nhide\n\nwhen I receive [start game v]\nshow\nforever\n    go to x: (229) y: (1)\n    if <touching (sprite2 v)?> then\n        broadcast (Next level v)\n    end\nend\n\nwhen I receive [end v]\nhide\n\n@Sprite3\n\nwhen flag clicked\nset size to (100) %\nhide\ngo to x: (6) y: (17)\nforever\n    if <touching (sprite2 v)?> then\n        hide\n    end\nend\n\nwait until \n\ngo [backward v] (1) layers\n\nif <(Level) = [7]> then\n    show\n    go to x: (-5) y: (8)\nend\n\nwhen I receive [flour v]\nshow\nswitch costume to (costume1 v)\n\nwhen I receive [butter v]\nshow\nswitch costume to (costume3 v)\n\nwhen I receive [sugar v]\nshow\nswitch costume to (costume4 v)\n\nwhen I receive [egg v]\nshow\nswitch costume to (costume2 v)\n\nwhen I receive [baking powder v]\nshow\nset size to (50) %\nswitch costume to (costume5 v)\ngo to x: (-18) y: (-40)\nwait until <touching (sprite2 v)?>\nbroadcast (End v)\nhide\n\nwhen I receive [end v]\nforever\n    hide\nend\n\n@Sprite4\n\nwhen flag clicked\nset [level v] to [0]\nhide\ngo to x: (-128) y: (-59)\nforever\n    if <(Level) = [3]> then\n        show\n        repeat (40)\n            move (5) steps\n        end\n        repeat (40)\n            move (-5) steps\n        end\n    else\n        hide\n    end\n    if <(Level) = [12]> then\n        show\n        glide (2.5) secs to x: (-146) y: (-75)\n        wait (1) seconds\n        glide (1.5) secs to x: (-21) y: (67)\n    else\n        hide\n    end\nend\n\nglide (2) secs to x: (-128) y: (-59)\n\nwhen I receive [end v]\nhide\n\nwhen flag clicked\nforever\n    if <(Level) = [4]> then\n        hide\n    end\n    if <(Level) = [13]> then\n        hide\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nhide\n\nshow\ngo to [front v] layer\n\n@Sprite5\n\nwhen flag clicked\ncreate clone of (_myself_ v)\nset [level v] to [1]\nhide\ngo to x: (-128) y: (-59)\nforever\n    if <(Level) = [22]> then\n        show\n        switch costume to (costume1 v)\n        go to x: (-237) y: (5)\n        wait (2) seconds\n        glide (3) secs to x: (-31) y: (7)\n    else\n        hide\n    end\nend\n\nrepeat (40)\n    move (5) steps\nend\nrepeat (40)\n    move (-5) steps\nend\n\nglide (2) secs to x: (-146) y: (-75)\nwait (1) seconds\nglide (1) secs to x: (-21) y: (67)\n\nset [level v] to [19]\n\nwhen I start as a clone\nif <(Level) = [22]> then\n    show\n    switch costume to (costume2 v)\n    forever\n        go to x: (156) y: (93)\n        glide (3) secs to x: (152) y: (-11)\n    end\nelse\n    hide\nend\n\nglide (3) secs to x: (156) y: (93)\n\nwhen I receive [end v]\nhide\n\n@snowflake\n\nwhen I receive [start game v]\nshow\nrepeat (10)\n    create clone of (_myself_ v)\nend\nforever\n    go to x: (pick random (-43) to (40)) y: (167)\n    set [ghost v] effect to (100)\n    repeat (40)\n        change [ghost v] effect by (-2.5)\n    end\n    wait (0) seconds\n    repeat (40)\n        change [ghost v] effect by (3)\n    end\n    if <key (l v) pressed?> then\n        hide\n    end\nend\n\nwhen I receive [end v]\nhide\n\nwhen I start as a clone\nforever\n    go to x: (pick random (-200) to (200)) y: (167)\n    set [ghost v] effect to (100)\n    repeat (40)\n        change [ghost v] effect by (-2.5)\n    end\n    wait (pick random (1) to (5)) seconds\n    repeat (40)\n        change [ghost v] effect by (3)\n    end\n    if <touching (_edge_ v)?> then\n        delete this clone\n    end\nend\n\nwhen I start as a clone\nforever\n    change y by (-5)\n    change x by (-0.5)\n    if <key (l v) pressed?> then\n        delete this clone\n    end\nend\n\nwhen I receive [start game v]\nforever\n    change y by (-5)\n    change x by (-0.5)\nend\n\n