COPY -A Puzzle Platformer

Instructions: Welcome to COPY. \nYou are a little robot going through a series of tests with one key ability. you can make COPIES!\nAll instructions are in the game.\n\nI'm glad this is getting a lot more attention, and if you like this, please check out some of my other games :)

@Stage\n\nwhen flag clicked\nset volume to (50) %\nforever\n    play sound [Dakota Rineer-Adventure v] until done\nend\n\n@Player\n\nwhen flag clicked\nset rotation style [left-right v]\nbroadcast (dont v)\nbroadcast (dont2 v)\nwait (0.05) seconds\ngo to [front v] layer\nset size to (200) %\nset volume to (70) %\nshow\ngo to x: (-212) y: (-92)\nset [clonecount v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset [lvl v] to [1]\nforever\n    change [y v] by (-1)\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [x v] by (-.7)\n    end\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        change [x v] by (.7)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching color (#6c6fb9)?> then\n        change y by (1)\n    end\n    if <touching color (#6c6fb9)?> then\n        change y by (1)\n    end\n    if <touching color (#6c6fb9)?> then\n        change y by (1)\n    end\n    if <touching color (#6c6fb9)?> then\n        change y by (1)\n    end\n    if <touching color (#6c6fb9)?> then\n        change y by (-4)\n        change x by ((x) * (-1))\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            if <([abs v] of (x) ) = (x)> then\n                set [x v] to [-1]\n            else\n                set [x v] to [1]\n            end\n        else\n            set [x v] to [0]\n        end\n    end\n    change y by (y)\n    if <touching color (#6c6fb9)?> then\n        change y by ((y) - ((y) * (2)))\n        set [y v] to [0]\n    end\n    change y by (-1)\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching color (#6c6fb9)?>> then\n        start sound [Jump v]\n        set [y v] to [9]\n    end\n    change y by (1)\n    if <not <(clonecount) = [5]>> then\n        if <<key (space v) pressed?> and <not <touching (noclonezone v)?>>> then\n            wait until <not <key (space v) pressed?>>\n            create clone of (_myself_ v)\n            wait (0.05) seconds\n            go to x: (-220) y: (-92)\n            set [x v] to [0]\n            set [y v] to [0]\n        end\n    end\n    if <(x position) > [226]> then\n        go to x: (-220) y: (-92)\n        change [lvl v] by (1)\n        set [x v] to [0]\n        set [y v] to [0]\n        set [clonecount v] to [0]\n        broadcast (message1 v)\n    end\n    if <key (r v) pressed?> then\n        wait until <not <key (r v) pressed?>>\n        go to x: (-220) y: (-92)\n        set [x v] to [0]\n        set [y v] to [0]\n        set [clonecount v] to [0]\n        broadcast (message1 v)\n        start sound [Crunch v]\n    end\n    if <[-173] > (y position)> then\n        start sound [Crunch v]\n        go to x: (-220) y: (-92)\n        set [x v] to [0]\n        set [y v] to [0]\n        set [clonecount v] to [0]\n        broadcast (message1 v)\n    end\nend\n\nwhen I start as a clone\nstart sound [Disconnect v]\nswitch costume to (costume3 v)\nchange [clonecount v] by (1)\nforever\n    if <(y position) > [-173]> then\n        repeat until <touching color (#6c6fb9)?>\n            change y by (-2)\n        end\n    end\n    if <[-173] > (y position)> then\n        go to x: (-220) y: (-92)\n        set [x v] to [0]\n        set [y v] to [0]\n        set [clonecount v] to [0]\n        broadcast (message1 v)\n    end\n    if <touching color (#66fff8)?> then\n        repeat until <not <touching color (#66fff8)?>>\n            broadcast (move v) and wait\n        end\n        broadcast (dont v)\n    end\n    if <touching color (#9bff00)?> then\n        broadcast (door v)\n        if <not <touching color (#9bff00)?>> then\n            broadcast (dont2 v)\n        end\n    end\n    if <touching color (#ff6d6d)?> then\n        broadcast (door2 v)\n        if <not <touching color (#ff6d6d)?>> then\n            broadcast (dont2 v)\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <<key (left arrow v) pressed?> or <key (right arrow v) pressed?>> then\n        if <key (left arrow v) pressed?> then\n            point in direction (-90)\n            repeat until <not <key (left arrow v) pressed?>>\n                switch costume to (costume1 v)\n                wait (0.05) seconds\n                switch costume to (costume2 v)\n                wait (0.05) seconds\n            end\n        end\n        if <key (right arrow v) pressed?> then\n            point in direction (90)\n            repeat until <not <key (right arrow v) pressed?>>\n                switch costume to (costume1 v)\n                wait (0.05) seconds\n                switch costume to (costume2 v)\n                wait (0.05) seconds\n            end\n        end\n    end\nend\n\nwhen I receive [message1 v]\nbroadcast (dont v)\nbroadcast (dont2 v)\ndelete this clone\n\nwhen [2 v] key pressed\ngo to x: (-220) y: (-92)\nchange [lvl v] by (1)\nset [x v] to [0]\nset [y v] to [0]\nset [clonecount v] to [0]\nbroadcast (message1 v)\n\nset [lvl v] to [8]\n\nwhen I start as a clone\nforever\n    if <[-173] > (y position)> then\n        change [clonecount v] by (-1)\n        start sound [Disconnect2 v]\n        delete this clone\n    end\nend\n\n@Level\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nforever\n    switch costume to (lvl)\nend\n\nset [lvl v] to [8]\n\n@NoCloneZone\n\nwhen flag clicked\nforever\n    set [ghost v] effect to (100)\n    go to x: (-214) y: (-107)\nend\n\n@moving platform\n\nwhen I receive [move v]\nforever\n    point in direction (90)\n    go to x: (143) y: (-36)\n    forever\n        point in direction (90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n        point in direction (-90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n    end\nend\n\nwhen I receive [dont v]\nset rotation style [don't rotate v]\ngo to x: (143) y: (-36)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [6]> then\n        show\n    else\n        hide\n    end\nend\n\nset [lvl v] to [6]\n\n@door\n\nwhen I receive [dont2 v]\nhide\nset rotation style [all around v]\ngo to x: (223) y: (-21)\npoint in direction (90)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [door v]\nif <not <<(direction) = [180]> or <(direction) > [180]>>> then\n    repeat until <(direction) = [180]>\n        repeat (18)\n            turn right (5) degrees\n        end\n    end\nend\n\nset [lvl v] to [8]\n\n@moving platform2\n\nwhen I receive [move v]\nforever\n    point in direction (90)\n    go to x: (162) y: (-135)\n    forever\n        point in direction (90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n        point in direction (-90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n    end\nend\n\nwhen I receive [dont v]\nset rotation style [don't rotate v]\ngo to x: (162) y: (-135)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [8]> then\n        show\n    else\n        hide\n    end\nend\n\nset [lvl v] to [6]\n\nset [lvl v] to [8]\n\n@moving platform3\n\nwhen I receive [move v]\nforever\n    point in direction (90)\n    go to x: (150) y: (-125)\n    forever\n        point in direction (90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n        point in direction (-90)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n    end\nend\n\nwhen I receive [dont v]\nset rotation style [don't rotate v]\ngo to x: (150) y: (-125)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [9]> then\n        show\n    else\n        hide\n    end\nend\n\nset [lvl v] to [6]\n\nset [lvl v] to [8]\n\nset [lvl v] to [9]\n\n@door2\n\nwhen I receive [dont2 v]\nhide\nset rotation style [all around v]\ngo to x: (0) y: (-19)\npoint in direction (90)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [9]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [door v]\nif <not <<(y position) = [56]> or <[56] < (y position)>>> then\n    repeat until <<(y position) = [56]> or <[56] < (y position)>>\n        change y by (5)\n    end\nend\n\nset [lvl v] to [9]\n\nbroadcast (door v)\n\nbroadcast (dont2 v)\n\nrepeat (22)\n\n@red door\n\nwhen I receive [dont2 v]\nhide\nset rotation style [all around v]\ngo to x: (-117) y: (-15)\npoint in direction (0)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [10]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [door2 v]\nif <not <(direction) = [-90]>> then\n    repeat until <(direction) = [-90]>\n        repeat (18)\n            turn left (5) degrees\n        end\n    end\nend\n\nset [lvl v] to [10]\n\ngo to x: (211) y: (-19)\n\nbroadcast (dont2 v)\n\nbroadcast (door2 v)\n\n@red door2\n\nwhen I receive [dont2 v]\nhide\nset rotation style [all around v]\ngo to x: (211) y: (-19)\npoint in direction (90)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [9]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [door2 v]\nif <not <<(direction) = [180]> or <(direction) > [180]>>> then\n    repeat until <(direction) = [180]>\n        repeat (18)\n            turn right (5) degrees\n        end\n    end\nend\n\nset [lvl v] to [8]\n\ngo to x: (211) y: (-19)\n\nbroadcast (dont2 v)\n\nbroadcast (door2 v)\n\nif <not <<(direction) = [180]> or <(direction) > [180]>>> then\n    repeat until <(direction) = [180]>\n        repeat (18)\n            turn right (5) degrees\n        end\n    end\nend\n\n@moving platform4\n\nwhen I receive [move v]\nforever\n    point in direction (0)\n    go to x: (-65) y: (-135)\n    forever\n        point in direction (0)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n        point in direction (180)\n        repeat until <touching color (#6c6fb9)?>\n            move (2) steps\n        end\n        if <touching color (#6c6fb9)?> then\n            move (-2) steps\n        end\n    end\nend\n\nwhen I receive [dont v]\nset rotation style [don't rotate v]\ngo to x: (-65) y: (-135)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [10]> then\n        show\n    else\n        hide\n    end\nend\n\nset [lvl v] to [6]\n\nset [lvl v] to [8]\n\nset [lvl v] to [10]\n\n@door3\n\nwhen I receive [dont2 v]\nhide\nset rotation style [all around v]\ngo to x: (169) y: (172)\npoint in direction (90)\nstop [other scripts in sprite v]\nforever\n    if <(lvl) = [10]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [door v]\nif <not <<(direction) = [180]> or <(direction) > [180]>>> then\n    repeat until <(direction) = [180]>\n        repeat (18)\n            turn right (5) degrees\n        end\n    end\nend\n\nset [lvl v] to [10]\n\n@clone counter\n\nwhen flag clicked\nwait (0.1) seconds\ngo to [front v] layer\nforever\n    if <(lvl) = [1]> then\n        hide\n    else\n        show\n        forever\n            switch costume to ((clonecount) + (1))\n        end\n    end\nend\n\nshow\n\nhide\n\n@COPY Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset size to (120) %\nhide\n\ngo to [front v] layer\nshow\n\n