Ice Lands || A Scrolling Platformer

Instructions: There are currently 5 levels. Use arrow keys or WASD keys to move. Get to the end to win. Avoid spikes and saws. Have fun! If this gets on trending I will make my first multiplayer scrolling platformer.

@Stage\n\nwhen [m v] key pressed\nset [mouse v] to (join ((mouse x) + (SCROLL X)) (join [, ] ((mouse y) + (SCROLL Y))))\nshow variable [mouse v]\nwait until <not <key (m v) pressed?>>\nwait until <key (m v) pressed?>\nhide variable [mouse v]\n\nwhen flag clicked\nbroadcast (Start Game v)\n\nwhen I receive [start game v]\nhide variable [mouse v]\nset [level v] to [1]\n\nwhen flag clicked\nforever\n    play sound [Vexento - Tevo \(Original Mix\).mp3 v] until done\nend\n\n@Player\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\n\nwhen I receive [play game v]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setup v) and wait\n    Game On\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v) and wait\n    end\n    if <(EXIT) = [Win]> then\n        Game-Win\n    else\n        Game-Die\n        change [deaths v] by (1)\n    end\nend\n\ndefine Game On\nset [x v] to [0]\nset [y v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [sx v] to [0]\nset [exit v] to []\nset [scroll x v] to [0]\nset [scroll y v] to [0]\nset [moving platformers \(up/down\) v] to [no]\nset size to (100) %\nset [ghost v] effect to (0)\nswitch costume to (right v)\nshow\n\ndefine Tick\nif <<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    switch costume to (left v)\n    change [sx v] by (-2)\nend\nif <<<key (d v) pressed?> or <key (right arrow v) pressed?>> or <<mouse down?> and <(x position) < (mouse x)>>> then\n    switch costume to (right v)\n    change [sx v] by (2)\nend\nif <touching (speed boost v)?> then\n    if <(in air) < [4]> then\n        Change Player X By [40]\n    end\nend\nset [sx v] to ((sx) * (0.8))\nif <([abs v] of (sx) ) > [0.9]> then\n    Change Player X By (round (sx))\nend\nif <<<key (w v) pressed?> or <key (up arrow v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <(in air) < [4]> then\n        set [sy v] to [16]\n    end\nend\nif <(sy) > [-20]> then\n    change [sy v] by (-2)\nend\nChange Player Y By (sy)\nTrap-Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [Die]\nend\nchange [scroll y v] by (round (((y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <(y) < [-180]> then\n    set [exit v] to [Die]\nend\n\ndefine Change Player Y By (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nif <(MOVING PLATFORMERS \(UP/DOWN\)) = [yes]> then\n    repeat until <not <touching (moving platformers \(up/down\) v)?>>\n        if <(sy) > [0]> then\n            change [y v] by (-1)\n        else\n            change [y v] by (1)\n            set [in air v] to [0]\n        end\n        Position\n        set [sy v] to [0]\n    end\nelse\n    if <(MOVING PLATFORMERS \(LEFT/RIGHT\)) = [yes]> then\n        repeat until <not <touching (moving platformers \(right/left\) v)?>>\n            if <(sy) > [0]> then\n                change [y v] by (-1)\n            else\n                change [y v] by (1)\n                set [in air v] to [0]\n            end\n            Position\n            set [sy v] to [0]\n        end\n    else\n        repeat until <not <touching (platforms v)?>>\n            if <(sy) > [0]> then\n                change [y v] by (-1)\n            else\n                change [y v] by (1)\n                set [in air v] to [0]\n            end\n            Position\n            set [sy v] to [0]\n        end\n    end\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\ndefine Change Player X By (sx)\nif <(MOVING PLATFORMERS \(UP/DOWN\)) = [yes]> then\n    change [x v] by (sx)\n    change [in air v] by (1)\n    Position\n    if <touching (moving platformers \(up/down\) v)?> then\n        repeat (12)\n            change [y v] by (1)\n            Position\n            if <not <touching (moving platformers \(up/down\) v)?>> then\n                stop [this script v]\n            end\n        end\n        change [y v] by (-12)\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            if <(sx) > [0]> then\n                set [sx v] to [-16]\n            else\n                set [sx v] to [16]\n            end\n            set [in air v] to [0]\n        else\n            set [sx v] to [0]\n        end\n        repeat until <not <touching (moving platformers \(up/down\) v)?>>\n            if <(sx) > [0]> then\n                change [x v] by (-1)\n            else\n                change [x v] by (1)\n            end\n            Position\n        end\n    end\nelse\n    if <(MOVING PLATFORMERS \(LEFT/RIGHT\)) = [yes]> then\n        change [x v] by (sx)\n        change [in air v] by (1)\n        Position\n        if <touching (moving platformers \(right/left\) v)?> then\n            repeat (12)\n                change [y v] by (1)\n                Position\n                if <not <touching (moving platformers \(right/left\) v)?>> then\n                    stop [this script v]\n                end\n            end\n            change [y v] by (-12)\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                if <(sx) > [0]> then\n                    set [sx v] to [-16]\n                else\n                    set [sx v] to [16]\n                end\n                set [in air v] to [0]\n            else\n                set [sx v] to [0]\n            end\n            repeat until <not <touching (moving platformers \(right/left\) v)?>>\n                if <(sx) > [0]> then\n                    change [x v] by (-1)\n                else\n                    change [x v] by (1)\n                end\n                Position\n            end\n        end\n    else\n        change [x v] by (sx)\n        change [in air v] by (1)\n        Position\n        if <touching (platforms v)?> then\n            repeat (12)\n                change [y v] by (1)\n                Position\n                if <not <touching (platforms v)?>> then\n                    stop [this script v]\n                end\n            end\n            change [y v] by (-12)\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                if <(sx) > [0]> then\n                    set [sx v] to [-16]\n                else\n                    set [sx v] to [16]\n                end\n                set [in air v] to [0]\n            else\n                set [sx v] to [0]\n            end\n            repeat until <not <touching (platforms v)?>>\n                if <(sx) > [0]> then\n                    change [x v] by (-1)\n                else\n                    change [x v] by (1)\n                end\n                Position\n            end\n        end\n    end\nend\n\ndefine Game-Die\nset [exit v] to []\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\nwait (0.5) seconds\n\ndefine Trap-Die\nif <<<touching (danger v)?> or <touching (saw v)?>> or <touching (moving saw v)?>> then\n    set [exit v] to [Die]\nend\n\ndefine Game-Win\nrepeat (50)\n    point towards (exit v)\n    turn right (65) degrees\n    move ((distance to [exit v]) / (2)) steps\n    change size by (-1)\n    change [ghost v] effect by (2)\nend\nhide\nchange [level v] by (1)\n\nwhen I receive [player die v]\nset [exit v] to [Die]\n\nwhen I receive [start game v]\nswitch costume to (right v)\nset [deaths v] to [0]\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [bounce v]\nset [sy v] to [30]\nChange Player Y By (sy)\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\n\nwhen I receive [play game v]\nforever\n    if <touching (moving platformers \(up/down\) v)?> then\n        set [moving platformers \(up/down\) v] to [yes]\n    else\n        if <touching (moving platformers \(right/left\) v)?> then\n            set [moving platformers \(left/right\) v] to [yes]\n        else\n            set [moving platformers \(left/right\) v] to [no]\n            set [moving platformers \(up/down\) v] to [no]\n        end\n    end\nend\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nhide\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nend\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 1 v)\n    Clone at x: [650] y: [0]\n    Clone at x: [500] y: [-45]\nend\nif <(LEVEL) = [3]> then\n    switch costume to (level 3 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nend\nif <(LEVEL) = [4]> then\n    switch costume to (level 4 1 v)\n    Clone at x: [800] y: [0]\nend\nif <(LEVEL) = [5]> then\n    switch costume to (level 5 1 v)\n    Clone at x: [500] y: [0]\nend\nif <(LEVEL) = [6]> then\n    broadcast (Win v)\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\n@Exit\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <<(costume [name v]) = [Open]> and <touching (player v)?>> then\n    set [exit v] to [Win]\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) < [6]> then\n    if <(LEVEL) = [1]> then\n        switch costume to (open v)\n        Clone at x: [1289] y: [214]\n    end\n    if <(LEVEL) = [2]> then\n        switch costume to (open v)\n        Clone at x: [1300] y: [27]\n    end\n    if <(LEVEL) = [3]> then\n        switch costume to (open v)\n        Clone at x: [824] y: [-34]\n    end\n    if <(LEVEL) = [4]> then\n        switch costume to (open v)\n        Clone at x: [1415] y: [112]\n    end\n    if <(LEVEL) = [5]> then\n        switch costume to (open v)\n        Clone at x: [886] y: [122]\n    end\nelse\n    set [x v] to [-9999999999]\nend\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\n\nwhen I receive [win v]\ndelete this clone\n\n@Colectables\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (player v)?> then\n    change [coins v] by (1)\n    delete this clone\nend\n\nwhen I receive [setup v]\nhide\nset [coins v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\nif <(LEVEL) = [3]> then\n    Clone at x: [-122] y: [227]\n    Clone at x: [-172] y: [227]\n    Clone at x: [-222] y: [227]\n    Clone at x: [-72] y: [227]\n    Clone at x: [-22] y: [227]\n    Clone at x: [28] y: [227]\n    Clone at x: [78] y: [227]\n    Clone at x: [128] y: [227]\n    Clone at x: [178] y: [227]\n    Clone at x: [228] y: [227]\nend\nset [x v] to [-999999999]\n\ndefine Position (x) (y)\nset size to (200) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [win v]\ndelete this clone\n\n@Danger\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nhide\ngo to [back v] layer\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\n    Clone at x: [360] y: [0]\nend\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 1 v)\n    Clone at x: [1110] y: [58]\n    Clone at x: [100] y: [3]\n    Clone at x: [100] y: [58]\nend\nif <(LEVEL) = [3]> then\n    switch costume to (level 3 1 v)\n    Clone at x: [0] y: [0]\nend\nif <(LEVEL) = [4]> then\n    switch costume to (level 4 1 v)\n    Clone at x: [0] y: [0]\nend\nif <(LEVEL) = [5]> then\n    switch costume to (level 5 1 v)\n    Clone at x: [500] y: [0]\n    Clone at x: [-9099] y: [0]\nend\nset [x v] to [-9999999999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\ndelete this clone\n\n@Snow\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\ngo to [front v] layer\nshow\ngo to x: (230) y: (pick random (-200) to (200))\npoint in direction (pick random (-105) to (-75))\nset [ghost v] effect to (100)\nrepeat (5)\n    change [ghost v] effect by (-10)\nend\nrepeat until <(x position) < [-230]>\n    move (10) steps\nend\nrepeat (5)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [start game v]\nforever\n    wait (.1) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I receive [win v]\nstop [other scripts in sprite v]\ndelete this clone\n\n@Trampoline\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (player v)?> then\n    switch costume to (3 v)\n    broadcast (Bounce v)\nelse\n    if <(costume [number v]) > [1]> then\n        switch costume to ((costume [number v]) - (1))\n    end\nend\n\nwhen I receive [setup v]\nset [ghost v] effect to (0)\nset size to (50) %\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [2]> then\n    Clone at x: [214] y: [-83]\nelse\n    if <(LEVEL) = [3]> then\n        Clone at x: [100] y: [-84]\n        Clone at x: [200] y: [-84]\n        Clone at x: [-200] y: [-84]\n        Clone at x: [-100] y: [-84]\n    else\n        if <(LEVEL) = [5]> then\n            Clone at x: [705] y: [-84]\n        end\n    end\nend\nset [x v] to [-99999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [reset v]\ndelete this clone\n\ndefine Clone at x: (x) y: (y)\nswitch costume to (1 v)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\n@You win\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [win v]\nshow\ngo to [front v] layer\n\n@Saw\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nturn right (6) degrees\ngo to [back v] layer\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [2]> then\n    Clone at [120] [-100] [180]\nend\nset [x v] to [-99999999999]\n\nswitch costume to (1 v)\n\ndefine Clone at (x) (y) (size)\nset size to (size) %\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\nwhen I receive [win v]\ndelete this clone\n\n@Moving Platformers (Up/Down)\n\ndefine move (x) steps with: (v) speed\nforever\n    repeat (round (((x) / (2)) / (v)))\n        change [y v] by (() - (v))\n    end\n    repeat (round (((x) / (2)) / (v)))\n        change [y v] by (v)\n    end\nend\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nhide\nif <(LEVEL) = [3]> then\n    switch costume to (level 3 1 v)\n    Clone at x: [625] y: [50]\nend\nif <(LEVEL) = [4]> then\n    switch costume to (level 3 2 v)\n    Clone at x: [1265] y: [5]\nend\nset [x v] to [-9999999999999999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x: (x) y: (y)\nchange [x v] by (x)\nchange [y v] by (y)\ncreate clone of (_myself_ v)\nnext costume\n\nwhen I start as a clone\nif <(costume [name v]) = [Level 3 1]> then\n    move [350] steps with: [3] speed\nelse\n    move [400] steps with: [3] speed\nend\n\nwhen I receive [transition v]\ndelete this clone\n\nwhen I receive [reset v]\ndelete this clone\n\n@Moving Platformers (Right/Left)\n\ndefine move (x) steps with: (v) speed\nforever\n    repeat (round (((x) / (2)) / (v)))\n        change [x v] by (() - (v))\n    end\n    repeat (round (((x) / (2)) / (v)))\n        change [x v] by (v)\n    end\nend\n\nwhen I receive [tick v]\nPosition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nhide\nif <(LEVEL) = [4]> then\n    switch costume to (level 3 1 v)\n    Clone at x: [450] y: [0]\nend\nset [x v] to [-9999999999999999]\n\ndefine Position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at x: (x) y: (y)\nchange [x v] by (x)\nchange [y v] by (y)\ncreate clone of (_myself_ v)\nnext costume\n\nwhen I start as a clone\nmove [350] steps with: [3] speed\n\nwhen I receive [transition v]\ndelete this clone\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [reset v]\ndelete this clone\n\n@Moving Saw\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nturn right (6) degrees\ngo to [back v] layer\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [4]> then\n    switch costume to (level 4 1 v)\n    Clone at [980] [-100] [180]\nend\nif <(LEVEL) = [5]> then\n    switch costume to (level 5 1 v)\n    Clone at [110] [-100] [175]\nend\nset [x v] to [-99999]\n\ndefine Clone at (x) (y) (size)\nset size to (size) %\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\ndefine move (x) steps with: (v) speed\nforever\n    repeat (round (((x) / (2)) / (v)))\n        change [x v] by (() - (v))\n    end\n    repeat (round (((x) / (2)) / (v)))\n        change [x v] by (v)\n    end\nend\n\nwhen I start as a clone\nmove [725] steps with: [6] speed\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\n@Decoration\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at [50] [-70]\nend\nif <(LEVEL) = [4]> then\n    switch costume to (level 4 1 v)\n    Clone at [-64] [-25]\nend\nset [x v] to [-999999999]\n\ndefine Clone at (x) (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen flag clicked\ngo [backward v] (5) layers\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\nwhen I receive [reset v]\ndelete this clone\n\n@Speed Boost\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nif <(LEVEL) = [2]> then\n    switch costume to (level 2 1 v)\n    Clone at [1030] [45]\nend\nif <(LEVEL) = [4]> then\n    switch costume to (level 4 1 v)\n    Clone at [200] [-85]\nend\nif <(LEVEL) = [5]> then\n    switch costume to (level 4 1 v)\n    Clone at [215] [-85]\nend\nset [x v] to [-999999999]\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at (x) (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [transition v]\ndelete this clone\n\nwhen I receive [win v]\ndelete this clone\n\nwhen I start as a clone\ngo [backward v] (10) layers\n\n@Thumbnail\n\nwhen flag clicked\nshow\nforever\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n@Love/Fave\n\nwhen flag clicked\nhide\nforever\n    wait (pick random (40) to (50)) seconds\n    switch costume to (costume1 v)\n    go to x: (0) y: (50)\n    show\n    go to [front v] layer\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (3)\n    end\n    repeat (5)\n        change y by (-1)\n    end\n    wait (2) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\n