My Singing Monsters: Cooking Chorus - A Platformer

Instructions: WARNING: If in a softlock, turn into Cybop or Rare Drumpler. Usually, it will get you out, with a couple of exceptions. Jumping and transforming mid-air is also a good idea. (Edit: Version 1.0.1 fixed this error) Also, double-click after losing the Wubbox boss battle, unless you want weird stuff to happen, and double-click when starting the game or winning against the Wubbox, otherwise the character won't appear for some reason.\n\nMy Singing Monsters: Cooking Chorus is a platformer based on the mobile game My Singing Monsters. In this game, Entbrat, Yelmut, Cybop, and Rare Drumpler are all headed to a cooking party, collecting Treats and Bakeries, as well as watching out for danger.\n\nUse the arrow keys (or WASD) to move, and press the space bar, up key or W to jump. Press 1 to turn into Yelmut, who can shrink, 2 to turn into Cybop, who can jump higher, 2 to turn into Rare Drumpler, who gives you twice as many Treats, or 0 to turn into Entbrat, who gives you twice as many Treats when collecting a Bakery.\nFor the Wubbox boss battle, use Yelmut to rebound the Relics he shoots out to deal damage to him.\nEnjoy! -RayGamer99

@Stage\n\nwhen flag clicked\nset [floogullunlock v] to [0]\nset [soozaunlock v] to [0]\nswitch backdrop to (plant_backdrop-min v)\nhide variable [wubbox health v]\nrepeat until <(level) = [11]>\n    play sound [Plant Island v] until done\nend\n\nwhen flag clicked\nwait until <(level) = [11]>\nstop all sounds\nrepeat until <(level) = [12]>\n    play sound [1-06 Broodals Confrontation v] until done\nend\n\nwhen flag clicked\nwait until <(level) = [12]>\nstop all sounds\nrepeat until <(level) = [13]>\n    play sound [1-24 Torkdrift Battle v] until done\nend\n\nwhen flag clicked\nwait until <(level) = [13]>\nstop all sounds\nswitch backdrop to (amber_backdrop v)\nrepeat until <(level) = []>\n    play sound [My Singing Monsters - Amber Island \(Full Song\) \(Update 2\) v] until done\nend\n\n@Level\n\nwhen flag clicked\ngo to [back v] layer\ngo to x: (0) y: (0)\nset [level v] to [1]\nforever\n    switch costume to (level)\nend\n\n@Monsters\n\nwhen flag clicked\nset [treats v] to [0]\nshow\nswitch costume to (monster_portrait_square_bcde v)\nset [lives v] to [3]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\ngo to x: (-190) y: (-35)\nforever\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        point in direction (90)\n        change [x velocity v] by (1)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n        point in direction (-90)\n        change [x velocity v] by (-1)\n    end\n    set [x velocity v] to ((x velocity) * (0.9))\n    change x by (x velocity)\n    if <touching (level v)?> then\n        change y by (1)\n        if <touching (level v)?> then\n            change y by (1)\n            if <touching (level v)?> then\n                change y by (1)\n                if <touching (level v)?> then\n                    change y by (1)\n                    if <touching (level v)?> then\n                        change y by (1)\n                        if <touching (level v)?> then\n                            change x by ((x velocity) * (-1))\n                            change y by (-5)\n                            if <<<<key (up arrow v) pressed?> or <key (space v) pressed?>> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                                if <(x velocity) > [0]> then\n                                    set [x velocity v] to [-5]\n                                else\n                                    set [x velocity v] to [5]\n                                end\n                                set [y velocity v] to [10]\n                            else\n                                set [x velocity v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change [y velocity v] by (-1)\n    change y by (y velocity)\n    if <touching (level v)?> then\n        change y by ((y velocity) * (-1))\n        set [y velocity v] to [0]\n    end\n    change y by (-1)\n    if <touching (level v)?> then\n        if <<<<key (up arrow v) pressed?> or <key (space v) pressed?>> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            start sound [Jump2 v]\n            if <(costume [number v]) = [4]> then\n                change [y velocity v] by (18)\n            else\n                change [y velocity v] by (15)\n            end\n        end\n        change y by (1)\n        if <touching (portal v)?> then\n            change [level v] by (1)\n            set [y velocity v] to [0]\n            set [x velocity v] to [0]\n            go to x: (-190) y: (-35)\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <(y position) < [-175]> then\n        broadcast (respawn v)\n    end\nend\n\nwhen I receive [respawn v]\nif <(level) = [12]> then\n    go to x: (121) y: (73)\n    change [lives v] by (-1)\nelse\n    go to x: (-190) y: (-35)\n    change [lives v] by (-1)\nend\n\nwhen flag clicked\nforever\n    if <<touching (danger v)?> or <touching (wubbox v)?>> then\n        broadcast (respawn v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Lives) = [0]> then\n        hide\n        broadcast (Game Over v)\n        stop [all v]\n    end\nend\n\nwhen [1 v] key pressed\nswitch costume to (yelmut v)\n\nwhen [0 v] key pressed\nswitch costume to (monster_portrait_square_bcde v)\n\nwhen [2 v] key pressed\nswitch costume to (cybop v)\n\nwhen [3 v] key pressed\nswitch costume to (rare_drumpler v)\n\nwhen flag clicked\nforever\n    if <(level) = [13]> then\n        hide\n        stop [other scripts in sprite v]\n    end\nend\n\nwhen I receive [you win! v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [jump v]\nif <touching (level v)?> then\n    change x by ((x velocity) * (-1))\n    change y by (-5)\n    if <(x velocity) > [0]> then\n        set [x velocity v] to [-5]\n    else\n        set [x velocity v] to [5]\n    end\n    set [y velocity v] to [10]\nend\nif <touching (level v)?> then\n    start sound [ray_jump_01 v]\n    if <(costume [number v]) = [4]> then\n        change [y velocity v] by (18)\n    else\n        change [y velocity v] by (15)\n    end\nend\n\nwhen I receive [entbrat v]\nswitch costume to (monster_portrait_square_bcde v)\n\nwhen I receive [yelmut v]\nswitch costume to (yelmut v)\n\nwhen I receive [rare drumpler v]\nswitch costume to (rare_drumpler v)\n\nwhen I receive [cybop v]\nswitch costume to (cybop v)\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [2]> then\n        repeat until <not <(costume [number v]) = [2]>>\n            if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>> then\n                repeat until <not <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(y position) > (mouse y)>>>>\n                    switch costume to (yelmut2 v)\n                end\n                switch costume to (yelmut v)\n            end\n        end\n    end\nend\n\nwhen [4 v] key pressed\nif <(FloogullUnlock) = [1]> then\n    switch costume to (floogull v)\nend\n\nwhen I receive [floogull v]\nswitch costume to (floogull v)\n\nwhen I receive [sooza v]\nswitch costume to (sooza v)\n\n@Portal\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\n@Treat 1\n\nwhen flag clicked\nforever\n    if <(level) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (2)\n        else\n            change [treats v] by (1)\n        end\n        hide\n        stop [other scripts in sprite v]\n    end\nend\n\n@Treat 2\n\nwhen flag clicked\nforever\n    if <(level) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (2)\n        else\n            change [treats v] by (1)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 3\n\nwhen flag clicked\nforever\n    if <(level) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (2)\n        else\n            change [treats v] by (1)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 4\n\nwhen flag clicked\nforever\n    if <(level) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (4)\n        else\n            change [treats v] by (2)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 5\n\nwhen flag clicked\nforever\n    if <(level) = [3]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (4)\n        else\n            change [treats v] by (2)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Danger\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [level v] to [1]\nforever\n    switch costume to (level)\nend\n\n@Treat 6\n\nwhen flag clicked\nforever\n    if <(level) = [4]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Sprite1\n\n@Bakery 1\n\nwhen flag clicked\nforever\n    if <(level) = [5]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [3W_SeOj10coin v]\n        if <([costume # v] of [monsters v]) = [1]> then\n            change [treats v] by (20)\n        else\n            change [treats v] by (10)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Jam_Boree\n\nwhen flag clicked\nforever\n    if <(level) = [6]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        say [Hmm... This looks like a tight squeeze. Try pressing 1, then hold the down arrow. That should get you through.]\n    else\n        say []\n    end\nend\n\n@Tweedle\n\nwhen flag clicked\nforever\n    if <(level) = [7]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        say [That looks like a far away gap. Try pressing 2, then jump. You should make it then.]\n    else\n        say []\n    end\nend\n\n@Treat 7\n\nwhen flag clicked\nforever\n    if <(level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 8\n\nwhen flag clicked\nforever\n    if <(level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 9\n\nwhen flag clicked\nforever\n    if <(level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 10\n\nwhen flag clicked\nforever\n    if <(level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Rare_Floogull\n\nwhen flag clicked\nforever\n    if <(level) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        say [Wow! So much food! After getting past that trap, try pressing 3, then collect all those delicious pizzas... It'll give you twice as many Treats!]\n    else\n        say []\n    end\nend\n\n@Bakery 2\n\nwhen flag clicked\nforever\n    if <(level) = [9]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [3W_SeOj10coin v]\n        if <([costume # v] of [monsters v]) = [1]> then\n            change [treats v] by (20)\n        else\n            change [treats v] by (10)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Treat 11\n\nwhen flag clicked\nforever\n    if <(level) = [10]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [M1_Coin v]\n        if <([costume # v] of [monsters v]) = [5]> then\n            change [treats v] by (6)\n        else\n            change [treats v] by (3)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Bakery 3\n\nwhen flag clicked\nforever\n    if <(level) = [10]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        start sound [3W_SeOj10coin v]\n        if <([costume # v] of [monsters v]) = [1]> then\n            change [treats v] by (20)\n        else\n            change [treats v] by (10)\n        end\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\n@Noggin2\n\nwhen flag clicked\nforever\n    if <(level) = [11]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (monsters v)?> then\n        say [You're gonna have to get past Wubbox to get to the party. But I believe in you! Just in case, I'll give you 3 extra lives when the battle begins. Good luck!]\n    else\n        say []\n    end\nend\n\n@Wubbox\n\nwhen flag clicked\npoint in direction (90)\ngo to x: (100) y: (-15)\nhide\nwait until <(level) = [12]>\nshow\nswitch costume to (wubbox_inactive v)\nchange [lives v] by (3)\nset [wubbox health v] to [3]\nshow variable [wubbox health v]\nwait (10.44) seconds\nswitch costume to (wubbox v)\nwait (1) seconds\nrepeat until <(Wubbox Health) = [0]>\n    glide (1) secs to x: (30) y: (-15)\n    glide (1) secs to x: (-89) y: (158)\n    glide (1) secs to x: (-169) y: (-15)\n    point in direction (-90)\n    switch costume to (wubbox_inactive v)\n    broadcast (Relic Shot v) and wait\n    glide (1) secs to x: (-169) y: (243)\n    glide (1) secs to x: (100) y: (243)\n    glide (1) secs to x: (100) y: (-15)\n    point in direction (90)\n    switch costume to (wubbox v)\n    wait (1) seconds\n    if <(Wubbox Health) = [0]> then\n        say [Good job. You completed the challenge. Now you may enter the cooking party! Thanks for playing!] for (5) seconds\n        hide\n        change [level v] by (1)\n        stop [other scripts in sprite v]\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\ngo to x: (100) y: (-15)\nhide\n\n@Relic\n\nwhen I receive [relic shot v]\nshow\npoint in direction (-90)\ngo to (wubbox v)\nrepeat until <touching (monsters v)?>\n    glide (1) secs to (monsters v)\n    if <touching (monsters v)?> then\n        if <<([costume # v] of [monsters v]) = [2]> or <([costume # v] of [monsters v]) = [3]>> then\n            point in direction (90)\n            glide (1) secs to (wubbox v)\n            change [wubbox health v] by (-1)\n            hide\n            stop [this script v]\n        else\n            broadcast (respawn v)\n            hide\n            stop [this script v]\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\n@Sprite2\n\nwhen flag clicked\nshow variable [treats v]\nshow variable [lives v]\ngo to [front v] layer\nforever\n    if <(level) = [13]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [you win! v]\nhide variable [treats v]\nhide variable [lives v]\nset [level v] to [13]\nhide variable [wubbox health v]\nstop all sounds\nshow\nforever\n    play sound [Loading Song - My Singing Monsters v] until done\nend\n\n@Sprite3\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nhide\n\n@Sprite4\n\nwhen flag clicked\ngo to [front v] layer\nhide\n\nwhen I receive [game over v]\nstop all sounds\nshow\n\n@Entbrat-egg\n\nwhen flag clicked\ngo to x: (-67) y: (147)\n\nwhen this sprite clicked\nbroadcast (Entbrat v)\n\n@Yelmut-egg\n\nwhen flag clicked\ngo to x: (6) y: (147)\n\nwhen this sprite clicked\nbroadcast (Yelmut v)\n\n@Rare_Drumpler-egg\n\nwhen flag clicked\ngo to x: (81) y: (147)\n\nwhen this sprite clicked\nbroadcast (Rare Drumpler v)\n\n@Cybop-egg\n\nwhen flag clicked\ngo to x: (154) y: (147)\n\nwhen this sprite clicked\nbroadcast (Cybop v)\n\n@Floogull-egg\n\nwhen flag clicked\ngo to x: (-67) y: (83)\nhide\nwait until <(FloogullUnlock) = [1]>\nshow\n\nwhen this sprite clicked\nbroadcast (Floogull v)\n\n@Sooza-egg\n\nwhen flag clicked\ngo to x: (-67) y: (83)\nhide\nwait until <(SoozaUnlock) = [1]>\nshow\n\nwhen this sprite clicked\nbroadcast (Sooza v)\n\n@Sprite5\n\nwhen flag clicked\nshow\ngo to x: (-158) y: (-149)\n\nwhen this sprite clicked\nhide\nbroadcast (Shop Open v)\n\nwhen I receive [shop close v]\nshow\ngo to x: (-158) y: (-149)\n\n@Store Menu\n\nwhen flag clicked\nhide\n\nwhen I receive [shop open v]\ngo to x: (0) y: (28)\nshow\n\nwhen I receive [shop close v]\nhide\n\n@Sprite6\n\nwhen flag clicked\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (-58) y: (38)\n\nwhen this sprite clicked\nif <(Treats) > [4]> then\n    start sound [WU_SE_SYS_100COIN_ONE_UP_ v]\n    change [lives v] by (1)\n    change [treats v] by (-5)\nelse\n    start sound [Fail v]\n    say [Insufficient Treats. Get some more!] for (3) seconds\nend\n\nwhen I receive [shop close v]\nhide\n\n@Sprite7\n\nwhen flag clicked\nhide\n\nwhen I receive [shop open v]\ngo to x: (142) y: (136)\nshow\n\nwhen this sprite clicked\nbroadcast (Shop Close v)\n\nwhen I receive [shop close v]\nhide\n\n@Sprite8\n\nwhen flag clicked\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (-58) y: (38)\n\nwhen this sprite clicked\nif <(Treats) > [70]> then\n    start sound [2-28 1UP v]\n    change [floogullunlock v] by (1)\n    change [treats v] by (-70)\n    stop [other scripts in sprite v]\nelse\n    start sound [Fail v]\n    say [Insufficient Treats. Get some more!] for (3) seconds\nend\n\nwhen I receive [shop close v]\nhide\n\n@Sprite9\n\nwhen flag clicked\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (-58) y: (38)\n\nwhen this sprite clicked\nif <(Treats) > [70]> then\n    start sound [2-28 1UP v]\n    change [soozaunlock v] by (1)\n    change [treats v] by (-70)\n    stop [other scripts in sprite v]\nelse\n    start sound [Fail v]\n    say [Insufficient Treats. Get some more!] for (3) seconds\nend\n\nwhen I receive [shop close v]\nhide\n\n