Save The Earth! (Platformer)

Instructions: Here is a platformer, teaching us more about global warming. Follow William the Snowman in his amazing adventure to save the world from global warming!

@Stage\n\nwhen flag clicked\nswitch backdrop to (map v)\n\nwhen I receive [game_start v]\nswitch backdrop to (map2 v)\n\nwhen I receive [next level v]\nnext backdrop\nif <(backdrop [name v]) = [Map9]> then\n    broadcast (Hide v)\nend\n\nwhen flag clicked\nforever\n    if <([backdrop name v] of [_stage_ v]) = [Map3]> then\n        broadcast (Spike_Appear v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <([backdrop name v] of [_stage_ v]) = [Map4]> then\n        broadcast (Spike_Disappear v)\n        broadcast (Penguin v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <([backdrop name v] of [_stage_ v]) = [Map5]> then\n        broadcast (Penguin Disappear v)\n    end\nend\n\nwhen I receive [dupe v]\nswitch backdrop to (mapdupe v)\n\nwhen flag clicked\nforever\n    if <([backdrop name v] of [_stage_ v]) = [Map6]> then\n        broadcast (Platforms v)\n    end\nend\n\n@Snowman_William\n\nwhen flag clicked\nset [gravity v] to [0]\npoint in direction (90)\nshow\nset size to (1500) %\ngo to x: (-152) y: (-113)\nset rotation style [left-right v]\nsay [Hello!] for (1) seconds\nsay [I am William the Snowman!] for (2) seconds\nsay [Today, I am here for a very important adventure...] for (2) seconds\nsay [My house in the Arctic has been destroyed, because the ice cap below it melted!] for (3) seconds\nsay [ This problem is too serious and will cause all of us to lose our homes due to melting ice caps!] for (3) seconds\nsay [In order to complete this adventure, I have to collect all of the scrolls!] for (2) seconds\nsay [According to a legend, once all the scrolls are collected, there will be many precious information on how to stop global warming!] for (4) seconds\nsay [Do you want to come and join me in my adventure to save our Earth from Global Warming?] for (3) seconds\nbroadcast (Button_Appear v)\n\nwhen I receive [game_start v]\npoint in direction (90)\nset size to (300) %\nswitch costume to (moving_2 v)\ngo to x: (-215) y: (-89)\nforever\n    if <key (right arrow v) pressed?> then\n        point in direction (90)\n        change x by (8)\n        if <touching color (#95d0d6)?> then\n            change x by (-8)\n            wait (0.08) seconds\n            change x by (-8)\n        end\n        if <(costume [name v]) = [Moving_2]> then\n            wait (0.08) seconds\n            switch costume to (moving_1 v)\n        else\n            if <(costume [name v]) = [Moving_1]> then\n                wait (0.08) seconds\n                switch costume to (moving_2 v)\n            end\n        end\n        if <(costume [name v]) = [Moving_1]> then\n            wait (0.08) seconds\n            switch costume to (moving_2 v)\n            change x by (8)\n        end\n    end\n    if <key (left arrow v) pressed?> then\n        point in direction (-90)\n        change x by (-8)\n        if <touching color (#95d0d6)?> then\n            change x by (8)\n            wait (0.08) seconds\n            change x by (8)\n        end\n        if <(costume [name v]) = [Moving_2]> then\n            wait (0.08) seconds\n            switch costume to (moving_1 v)\n        else\n            if <(costume [name v]) = [Moving_1]> then\n                wait (0.08) seconds\n                switch costume to (moving_2 v)\n            end\n        end\n        if <(costume [name v]) = [Moving_1]> then\n            wait (0.08) seconds\n            switch costume to (moving_2 v)\n            change x by (-8)\n        end\n    end\n    if <touching (scroll v)?> then\n        broadcast (Next Level v)\n        go to x: (-215) y: (-89)\n    end\n    if <touching (spikes v)?> then\n        go to x: (-215) y: (-89)\n    end\n    if <touching (penguin v)?> then\n        broadcast (Speech v)\n    end\n    if <touching (gem_asset v)?> then\n        broadcast (Gem_Collect v)\n        think [A Gem?] for (1) seconds\n    end\nend\n\nwhen I receive [game_start v]\nforever\n    if <not <touching (iceberg v)?>> then\n        change [gravity v] by (-0.5)\n        change y by (Gravity)\n    end\nend\n\nwhen I receive [game_start v]\ngo to [front v] layer\nforever\n    if <touching (iceberg v)?> then\n        if <key (up arrow v) pressed?> then\n            set [gravity v] to [8]\n            change y by (10)\n        end\n    end\nend\n\nwhen I receive [game_start v]\nforever\n    if <touching (iceberg2 v)?> then\n        set y to (-89)\n    end\nend\n\nwhen I receive [yes v]\nsay [Alright, then! Here we go!] for (2) seconds\nbroadcast (Intro v)\n\nwhen I receive [speech v]\nrepeat until <(backdrop [name v]) = [MapDupe]>\n    go to x: (-39) y: (-89)\nend\n\nwhen I receive [game_start v]\ngo to [front v] layer\nforever\n    if <touching (purple_pool_asset v)?> then\n        set [gravity v] to [13]\n        change y by (10)\n    end\nend\n\nwhen I receive [game_start v]\nforever\n    if <key (r v) pressed?> then\n        go to x: (-215) y: (-89)\n    end\nend\n\nwhen I receive [doors v]\nthink [Hmm... Two doors... Maybe the magical snowball can help...] for (3) seconds\n\n@Iceberg\n\nwhen flag clicked\nhide\nswitch costume to (iceberg v)\n\nwhen I receive [game_start v]\nswitch costume to (iceberg v)\nshow\nset size to (165) %\ngo to x: (2) y: (-208)\nforever\n    if <(backdrop [name v]) = [Map5]> then\n        switch costume to (iceberg2 v)\n    end\n    if <(backdrop [name v]) = [Map6]> then\n        switch costume to (iceberg3 v)\n    end\n    if <(backdrop [name v]) = [Map7]> then\n        switch costume to (iceberg v)\n    end\nend\n\n@Intro\n\nwhen flag clicked\nshow\nset [brightness v] effect to (10)\nset [ghost v] effect to (100)\nset size to (210) %\ngo to x: (14) y: (-9)\n\nwhen I receive [intro v]\ngo to [front v] layer\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\n\nwhen I receive [game_start v]\nrepeat (25)\n    change [ghost v] effect by (4)\nend\n\nhide\n\nwhen I receive [intro v]\nforever\n    next costume\nend\n\n@Sprite1\n\nwhen I receive [intro v]\nset volume to (100) %\ngo to [front v] layer\nstart sound [amclassical_while_shepherds_watched v]\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nwait (9.3) seconds\nstop all sounds\nbroadcast (Game_Start v)\nhide\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\ngo to x: (0) y: (57)\n\nwhen I receive [game_start v]\nforever\n    play sound [aurora-zone v] until done\nend\n\nwhen I receive [game_start v]\nrepeat (25)\n    change [ghost v] effect by (4)\nend\n\n@Iceberg2\n\nwhen flag clicked\nhide\n\nwhen I receive [game_start v]\nshow\nset size to (165) %\ngo to x: (2) y: (-202)\n\n@Penguin\n\nwhen flag clicked\nhide\ngo to x: (13) y: (-78)\n\nwhen I receive [penguin v]\nshow\ngo to x: (13) y: (-78)\n\nwhen I receive [speech v]\nshow\nsay [Hey there! I am Mr Penguin!] for (2) seconds\nsay [I heard you are trying to find all the scrolls to prevent global warming, aren't you?] for (3) seconds\nsay [Well, My house too has been destroyed due to global warming!] for (2) seconds\nsay [We have to start and do our part to prevent it!] for (2) seconds\nsay [I cannot go with you on this adventure, but I have something for you that might be of good use...] for (3) seconds\nbroadcast (Snowflake_Asset v)\nsay [Here you go!] for (2) seconds\nsay [This is a magical snowball!] for (2) seconds\nsay [Across your adventure to find the scrolls, this snowball will lead the way once you click it!] for (3) seconds\nsay [You can use it in many situations, for example if there are 2 or more pathways.] for (3) seconds\nsay [Alright, I guess I have to go now. Bye!] for (2) seconds\nrepeat (20)\n    change [ghost v] effect by (5)\nend\ngo to [front v] layer\nhide\nbroadcast (Dupe v)\n\nwhen I receive [penguin disappear v]\nhide\n\nwhen I receive [dupe v]\ngo to x: (238) y: (188)\n\n@Button3\n\nwhen flag clicked\nhide\n\nwhen I receive [button_appear v]\nshow\n\nwhen this sprite clicked\nhide\nbroadcast (Yes v)\n\n@Scroll\n\nwhen flag clicked\nclear graphic effects\nset size to (10) %\nhide\n\nwhen I receive [_open_ v]\npoint in direction (90)\nset size to (10) %\ngo to [front v] layer\nshow\ngo to x: (-24) y: (33)\nrepeat (15)\n    change size by (1)\nend\nrepeat (10)\n    change [brightness v] effect by (30)\n    wait (0.01) seconds\n    turn right (18) degrees\n    wait (0.01) seconds\n    change [brightness v] effect by (30)\n    wait (0.01) seconds\n    turn right (18) degrees\n    wait (0.01) seconds\n    change [brightness v] effect by (-30)\n    wait (0.01) seconds\n    turn right (18) degrees\n    wait (0.01) seconds\n    change [brightness v] effect by (-30)\n    wait (0.01) seconds\n    turn right (18) degrees\n    wait (0.01) seconds\nend\npoint in direction (90)\nrepeat (50)\n    change [ghost v] effect by (2)\nend\nbroadcast (Last words start v)\n\nwhen I receive [game_start v]\npoint in direction (90)\nshow\ngo to x: (219) y: (-92)\nforever\n\nif <(backdrop [name v]) = [Map9]> then\n    hide\nend\nif <(backdrop [name v]) = [Map10]> then\n    show\nend\n\nwhen I receive [hide v]\nhide\n\n@Spikes\n\nwhen flag clicked\nhide\n\nwhen I receive [spike_appear v]\nshow\ngo to x: (100) y: (-70)\n\nwhen I receive [spike_disappear v]\nhide\n\nwhen flag clicked\nset [clone v] to [0]\nforever\n    if <(backdrop [name v]) = [Map7]> then\n        show\n        go to x: (-110) y: (-72)\n        repeat (3)\n            change [clone v] by (1)\n            create clone of (_myself_ v)\n        end\n    end\n    if <(backdrop [name v]) = [Map8]> then\n        hide\n    end\nend\n\nwhen I start as a clone\nif <(Clone) = [1]> then\n    repeat until <(backdrop [name v]) = [Map8]>\n        go to x: (-25) y: (-72)\n    end\nend\nif <(Clone) = [2]> then\n    repeat until <(backdrop [name v]) = [Map8]>\n        go to x: (60) y: (-72)\n    end\nend\nif <(Clone) = [3]> then\n    repeat until <(backdrop [name v]) = [Map8]>\n        go to x: (145) y: (-72)\n    end\nend\ndelete this clone\n\n@Snowball\n\nwhen I receive [snowflake_asset v]\nshow\nglide (2) secs to x: (-199) y: (100)\n\nwhen flag clicked\nhide\ngo to x: (-26) y: (-48)\nswitch costume to (snowball v)\n\nwhen this sprite clicked\nif <(backdrop [name v]) = [Map9]> then\n    broadcast (Magical_Snowball v)\n    wait (0.1) seconds\n    hide\nend\n\nwhen I receive [game_start v]\nforever\n    if <(backdrop [name v]) = [Map9]> then\n        switch costume to (snowball2 v)\n    end\nend\n\n@Purple_Pool_Asset\n\nwhen flag clicked\ngo to x: (-300) y: (-200)\nhide\n\nwhen I receive [game_start v]\nswitch costume to (purple_pool_asset v)\nforever\n    if <(backdrop [name v]) = [Map5]> then\n        go to [front v] layer\n        go to x: (3) y: (-93)\n        show\n        go to x: (3) y: (-93)\n    end\n    if <(backdrop [name v]) = [Map6]> then\n        switch costume to (purple_pool_asset21 v)\n        go to x: (-160) y: (-95)\n    end\n    if <(backdrop [name v]) = [Map7]> then\n        switch costume to (purple_pool_asset v)\n        hide\n    end\nend\n\n@Gem_Asset\n\nwhen flag clicked\nhide\nswitch costume to (asset v)\nclear graphic effects\n\nwhen I receive [game_start v]\npoint in direction (90)\ngo to x: (0) y: (-199)\nforever\n    if <(backdrop [name v]) = [Map8]> then\n        show\n    end\nend\n\nwhen I receive [gem_collect v]\nglide (1) secs to x: (-141) y: (-23)\n\nwhen I receive [open chest v]\nswitch costume to (asset2 v)\ngo to x: (-208) y: (26)\ngo to [front v] layer\nshow\nglide (2) secs to x: (-17) y: (-115)\nrepeat (100)\n    change [color v] effect by (4)\n    change [ghost v] effect by (1)\nend\nhide\nbroadcast (_Open_ v)\n\nglide (1) secs to x: (-151) y: (-23)\n\n@Dungeon Door\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nforever\n    switch costume to (dungeon door3 v)\nend\n\nwhen I receive [game_start v]\nforever\n    if <(backdrop [name v]) = [Map9]> then\n        go to x: (-60) y: (-71)\n        go to [back v] layer\n        show\n    end\n    if <touching (snowman_william v)?> then\n        switch costume to (dungeon door2 v)\n    else\n        switch costume to (dungeon door v)\n    end\n    if <(backdrop [name v]) = [Map10]> then\n        hide\n    end\nend\n\nif <(costume [name v]) = [Dungeon Door3]> then\n\n@Arrow_Asset\n\nwhen flag clicked\ngo to x: (-209) y: (98)\nhide\nset [ghost v] effect to (100)\n\nwhen I receive [magical_snowball v]\nshow\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nglide (1) secs to x: (87) y: (20)\n\n@Dungeon Door2\n\nwhen flag clicked\nhide\n\nwhen this sprite clicked\nbroadcast (Correct Door! v)\n\nwhen I receive [game_start v]\nforever\n    if <(backdrop [name v]) = [Map9]> then\n        go to x: (127) y: (-71)\n        go to [back v] layer\n        show\n    end\n    if <touching (snowman_william v)?> then\n        switch costume to (dungeon door2 v)\n    else\n        switch costume to (dungeon door v)\n    end\n    if <(backdrop [name v]) = [Map10]> then\n        hide\n    end\nend\n\n@Chest_opened\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nswitch costume to (chest_closed v)\n\nwhen I receive [correct door! v]\nshow\ngo to x: (0) y: (0)\n\nwhen I receive [chest appear v]\nshow\ngo to x: (0) y: (0)\ngo to [front v] layer\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nbroadcast (Last Speech v)\n\nwhen I receive [_open_ v]\nswitch costume to (chest_opened v)\nbroadcast (Scroll v)\n\n@Tile\n\nwhen flag clicked\nhide\n\nwhen I receive [correct door! v]\ngo to x: (74) y: (-480)\nshow\ngo to [front v] layer\nbroadcast (Chest Appear v)\n\n@Last Speech Entity\n\nwhen I receive [last speech v]\nsay [No way! We made it!] for (2) seconds\nsay [This has to be the chest containing the last scroll!] for (2) seconds\nsay [Let's save the Earth from global warming!] for (2) seconds\nsay [3...] for (1) seconds\nsay [2...] for (1) seconds\nsay [1...] for (1) seconds\nsay [Open!] for (1) seconds\nbroadcast (Open Chest v)\n\n@Last words\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\nwhen I receive [last words v]\nshow\ngo to x: (2) y: (5)\ngo to [front v] layer\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nwait (3) seconds\nrepeat until <(y position) = [264]>\n    change y by (0.2)\nend\nwait (2) seconds\nbroadcast (Ending v)\n\n@Final_Scroll_Entity\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\n\nwhen I receive [last words start v]\nshow\ngo to [front v] layer\ngo to x: (2) y: (-15)\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nbroadcast (Last words v)\n\n@Earth\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\ngo to x: (-2) y: (20)\nforever\n    next costume\n    wait (0.01) seconds\nend\n\nwhen I receive [ending v]\nshow\ngo to [front v] layer\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (37) y: (-197)\nset [ghost v] effect to (100)\nhide\n\nwhen I receive [ending v]\nshow\nwait (0.1) seconds\ngo to [front v] layer\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\n\n