Migration - An Elephant Platformer

Instructions:             °°°ᴍɪɢʀᴀᴛɪᴏɴ ~ ᴀɴ ᴇʟᴇᴘʜᴀɴᴛ ᴘʟᴀᴛғᴏʀᴍᴇʀ°°°\n•ᴜsᴇ ᴀʀʀᴏᴡ ᴋᴇʏs ᴛᴏ ᴍᴏᴠᴇ ᴏʀ ᴡᴀᴅ \n•ᴍᴏʙɪʟᴇ ғʀɪᴇɴᴅʟʏ\n•ᴅᴏᴅɢᴇ sᴘɪᴋᴇs \n•ɢᴜɪᴅᴇ ʏᴏᴜʀ ᴇʟᴇᴘʜᴀɴᴛ ᴏɴ ɪᴛs ᴊᴏᴜʀɴᴇʏ\n•ᴜsᴇ sᴘᴇᴇᴅ ʙᴏᴏsᴛs \n•ᴘʟᴇᴀsᴇ ʜᴇᴀʀᴛ ᴀɴᴅ ғᴀᴠᴏʀɪᴛᴇ\n•ʟᴇᴛ ᴍᴇ ᴋɴᴏᴡ ᴡʜᴀᴛ ᴛᴏ ᴄʜᴀɴɢᴇ ᴏʀ ᴀᴅᴅ\n•ɪ'ᴍ ᴀᴅᴅɪɴɢ ᴍᴏʀᴇ ʟᴇᴠᴇʟs sᴏᴏɴ\n•ɪ ʀᴇsᴘᴏɴᴅ ᴛᴏ ᴍᴏsᴛ ᴄᴏᴍᴍᴇɴᴛs

@Stage\n\nwhen flag clicked\nforever\n    play sound [Beautiful Cinematic Music - Beyond \(Royalty Free\) v] until done\nend\n\n@Player\n\nwhen I receive [estop v]\nhide\n\nwhen I receive [next level v]\nset [yv v] to [0]\nset [xv v] to [0]\ngo to x: (-200) y: (0)\nset [ghost v] effect to (0)\n\nwhen flag clicked\nset rotation style [left-right v]\nhide\n\nwhen flag clicked\npoint in direction (90)\nset [xvel v] to [0]\nset [yvel v] to [0]\nforever\n    show\n    set rotation style [left-right v]\n    if <<<mouse down?> and <(x position) > (mouse x)>> or <key (left arrow v) pressed?>> then\n        point in direction (-90)\n        change [xv v] by (-1)\n    end\n    if <<<mouse down?> and <(x position) < (mouse x)>> or <key (right arrow v) pressed?>> then\n        point in direction (90)\n        change [xv v] by (1)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching (levels v)?> then\n        change y by (1)\n        if <touching (levels v)?> then\n            change y by (1)\n            if <touching (levels v)?> then\n                change y by (1)\n                if <touching (levels v)?> then\n                    change y by (1)\n                    if <touching (levels v)?> then\n                        change y by (1)\n                        if <touching (levels v)?> then\n                            change x by ((Xv) * (-1))\n                            change y by (-5)\n                            if <<<mouse down?> and <(y position) < (mouse y)>> or <key (up arrow v) pressed?>> then\n                                if <(Xv) > [0]> then\n                                    set [xv v] to [-7]\n                                else\n                                    set [xv v] to [7]\n                                end\n                                set [yv v] to [10]\n                            else\n                                set [xv v] to [0]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\n    change y by (-1)\n    if <touching (levels v)?> then\n        if <<<mouse down?> and <(y position) < (mouse y)>> or <key (up arrow v) pressed?>> then\n            set [yv v] to [12]\n        end\n    end\n    change y by (1)\n    change [yv v] by (-1)\n    set [yv v] to ((Yv) * (0.99))\n    change y by (Yv)\n    if <touching (levels v)?> then\n        change y by ((Yv) * (-1))\n        set [yv v] to [0]\n    end\n    hide variable [xv v]\n    if <(x position) > [230]> then\n        broadcast (next level v)\n    end\n    if <(y position) < [-170]> then\n        go to x: (-200) y: (0)\n    end\n    if <touching (spikes v)?> then\n        repeat (10)\n            change size by (-10)\n            turn right (5) degrees\n        end\n        set [yv v] to [0]\n        set [xv v] to [0]\n        set size to (92) %\n        set [ghost v] effect to (0)\n        go to x: (-200) y: (0)\n        point in direction (90)\n    end\n    if <touching (tramp v)?> then\n        set [yv v] to [15]\n    end\n    if <touching (speed boost v)?> then\n        set [xv v] to [21]\n    end\nend\n\nwhen flag clicked\nwait (1) seconds\ngo to x: (-200) y: (0)\n\n@Levels\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [end]> then\n        broadcast (estop v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nwait (1) seconds\nshow\n\n@spikes\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [end]> then\n        broadcast (estop v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nwait (1) seconds\nshow\n\n@tramp\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [end]> then\n        broadcast (estop v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nwait (1) seconds\nshow\n\n@speed boost\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    if <(costume [name v]) = [end]> then\n        broadcast (estop v)\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nwait (1) seconds\nshow\n\n@clouds\n\nwhen flag clicked\nset [ghost v] effect to (0)\nchange [ghost v] effect by (30)\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nwait (1) seconds\nshow\nset size to (100) %\ngo to [back v] layer\nforever\n    set y to (([y position v] of [player v]) * (-0.07))\n    set x to (([x position v] of [player v]) * (-0.07))\nend\n\nwhen I receive [estop v]\nstop [other scripts in sprite v]\nstop [this script v]\n\n@thumb\n\nwhen flag clicked\nset [ghost v] effect to (0)\ngo to [front v] layer\nshow\ngo to x: (0) y: (0)\nwait (1) seconds\nrepeat (17)\n    change [ghost v] effect by (7)\nend\nset [ghost v] effect to (100)\nhide\n\n@coollogo_com-254122048\n\n@coollogo_com-134463807\n\n