Rainy Day ~ A Multiplayer Scrolling Platformer

Instructions: STORY:\n\nIt's a peaceful day. What a nice day to go outside. If you like it, don’t forget to love, fave, and follow!\n\n#game #games #platformer #platformers #sfff #trending #earth #uboiscratch #mobilefriendly #friendly #mobile #natural #peaceful #rain #rainy #rainyday #day #multiplayer #scrolling #scrollingplatformer #multiplayerscrollingplatformer

@Stage\n\nwhen [m v] key pressed\nshow variable [mouse x,y v]\nset [mouse x,y v] to (join ((mouse x) + (SCROLL X)) (join [,] ((mouse y) + (SCROLL Y))))\n\nwhen flag clicked\nforever\n    play sound [Orbit - Corbyn Kites v] until done\nend\n\n@Player\n\nwhen I receive [play game v]\nset [connected? v] to [0]\n\ndefine Position\nbroadcast (nexxxxtttttttt v)\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\nwhen I receive [green flag v]\nhide\n\ndefine Change Player x by (sx)\npoint in direction (90)\nchange [x v] by (sx)\nPosition\nif <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 <<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> 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\nend\n\nwhen flag clicked\npoint in direction (90)\nbroadcast (Green Flag v) and wait\nbroadcast (Play Game v) and wait\n\ndefine Change Player y by (sy)\nchange [y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat 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]\nend\n\ndefine Game On\nset [y v] to [0]\nset [x v] to [0]\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [0]\nset [exit v] to []\nset [ghost v] effect to (0)\nset size to (100) %\n\ndefine Test - Die\nif <touching (saws2 v)?> then\n    start sound [Hurt v]\n    set [exit v] to [die]\nend\nif <touching (saws v)?> then\n    start sound [Hurt v]\n    set [exit v] to [die]\nend\n\ndefine Game - Die\nset [exit v] to []\nstart sound [Hurt v]\n\ndefine Game - Win\nbroadcast (xd v)\nchange [level v] by (1)\ngo to (exit v)\nwait (1) seconds\n\ndefine Tick\nif <<<(mouse x) < (x position)> and <mouse down?>> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n    change [sx v] by (-2)\nend\nif <<<(x position) < (mouse x)> and <mouse down?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>> then\n    change [sx v] by (2)\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 <<<(y position) < (mouse y)> and <mouse down?>> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> 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)\nTest - Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\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\nif <(x) < [-220]> then\n    set [x v] to [-220]\nend\n\nwhen flag clicked\nhide\nset [max players v] to [8]\nset [my player # v] to [0]\nbroadcast (Connecting v)\nbroadcast (Setup Others v) and wait\nbroadcast (Join Game v) and wait\nif <(MY PLAYER #) > [0]> then\n    broadcast (Connected v)\n    start sound [Connect v]\nelse\n    broadcast (Full v)\n    start sound [Disconnect v]\nend\nbroadcast (Begin v)\n\ndefine set cloud # (player) to (value)\nif <(player) = [1]> then\n    set [☁ p1 v] to (value)\nelse\n    if <(player) = [2]> then\n        set [☁ p2 v] to (value)\n    else\n        if <(player) = [3]> then\n            set [☁ p3 v] to (value)\n        else\n            if <(player) = [4]> then\n                set [☁ p4 v] to (value)\n            else\n                if <(player) = [5]> then\n                    set [☁ p5 v] to (value)\n                else\n                    if <(player) = [6]> then\n                        set [☁ p6 v] to (value)\n                    else\n                        if <(player) = [7]> then\n                            set [☁ p7 v] to (value)\n                        else\n                            if <(player) = [8]> then\n                                set [☁ p8 v] to (value)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine write (val) to encoded\nset [letter # v] to [1]\nrepeat (length of (val))\n    set [encoded v] to (join (encoded) (item # of (letter (letter #) of (val)) in [code v]))\n    change [letter # v] by (1)\nend\nset [encoded v] to (join (encoded) [00])\n\nwhen I receive [begin v]\nforever\n    if <(MY PLAYER #) > [0]> then\n        send cloud data\n    end\nend\n\ndefine send cloud data\nset [encoded v] to []\nwrite (username) to encoded\nwrite (round ((timer) * (10))) to encoded\nwrite (x) to encoded\nwrite (y) to encoded\nwrite (Chat Words) to encoded\nset cloud # (MY PLAYER #) to (encoded)\n\nwhen I receive [connected v]\nset [connected? v] to [1]\nshow\n\nwhen I receive [connecting v]\nhide\n\nwhen I receive [play game v]\nforever\n    if <(Connected?) = [1]> then\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)\n        end\n        if <(EXIT) = [win]> then\n            Game - Win\n        else\n            Game - Die\n        end\n    end\nend\n\nwhen I receive [connected v]\nset [level v] to [1]\n\n@Others\n\nwhen I receive [begin v]\nset [names v] to [1]\nforever\n    if <key (n v) pressed?> then\n        if <(names) = [1]> then\n            wait until <not <key (n v) pressed?>>\n            set [names v] to [0]\n        else\n            wait until <not <key (n v) pressed?>>\n            set [names v] to [1]\n        end\n    end\nend\n\nwhen I receive [setup others v]\nsetup players\n\ndefine setup players\nhide\nset [offline v] to [100]\nset [player # v] to [1]\nrepeat ((MAX PLAYERS) - (1))\n    create clone of (_myself_ v)\n    change [player # v] by (1)\nend\n\ndefine value = cloud # (player)\nif <(player) = [1]> then\n    set [value v] to (☁ P1)\nelse\n    if <(player) = [2]> then\n        set [value v] to (☁ P2)\n    else\n        if <(player) = [3]> then\n            set [value v] to (☁ P3)\n        else\n            if <(player) = [4]> then\n                set [value v] to (☁ P4)\n            else\n                if <(player) = [5]> then\n                    set [value v] to (☁ P5)\n                else\n                    if <(player) = [6]> then\n                        set [value v] to (☁ P6)\n                    else\n                        if <(player) = [7]> then\n                            set [value v] to (☁ P7)\n                        else\n                            if <(player) = [8]> then\n                                set [value v] to (☁ P8)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [begin v]\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n        hide\n    else\n        Tick\n    end\nend\n\ndefine Tick\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    change [offline v] by (1)\n    if <(offline) = [100]> then\n        hide\n    end\nelse\n    set [last value v] to (join [A] (value))\n    if <(offline) > [99]> then\n        show\n    end\n    set [offline v] to [0]\nend\nbegin decode of (value)\nvalue = read from encoded\nif <(names) = [1]> then\n    say (join (player #) (join [:] (value)))\nelse\n    say []\nend\nvalue = read from encoded\nvalue = read from encoded\nset x to ((value) - (SCROLL X))\nvalue = read from encoded\nset y to (((value) - (SCROLL Y)) + (8))\nvalue = read from encoded\nbroadcast (Decode Chat v)\n\ndefine begin decode of (encoded)\nset [encoded v] to (encoded)\nset [letter # v] to [1]\n\ndefine value = read from encoded\nset [value v] to []\nforever\n    set [idx v] to (join (letter (letter #) of (encoded)) (letter ((letter #) + (1)) of (encoded)))\n    change [letter # v] by (2)\n    if <(idx) < [1]> then\n        stop [this script v]\n    end\n    set [value v] to (join (value) (item (idx) of [code v]))\nend\n\nwhen I receive [join game v]\nvalue = cloud # (player #)\nset [last value v] to (join [A] (value))\nwait (3) seconds\nvalue = cloud # (player #)\nif <(join [A] (value)) = (last value)> then\n    set [my player # v] to (player #)\nend\n\ndefine Decode Chat (chat)\nif <(chat) = [1]> then\n    say [Hi!] for (2) seconds\nelse\n    if <(chat) = [2]> then\n        say [Bye!] for (2) seconds\n    else\n        if <(chat) = [3]> then\n            say [Yes] for (2) seconds\n        else\n            if <(chat) = [4]> then\n                say [Help Please!] for (2) seconds\n            else\n                if <(chat) = [5]> then\n                    say [No] for (2) seconds\n                else\n                    if <(chat) = [6]> then\n                        say [This Way!] for (2) seconds\n                    else\n                        if <(chat) = [7]> then\n                            say [Lol!] for (2) seconds\n                        else\n                            if <(chat) = [8]> then\n                                say [I Am Lagging :\(] for (2) seconds\n                            else\n                                if <(chat) = [9]> then\n                                    say [Got To Go!] for (2) seconds\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [decode chat v]\nDecode Chat (value)\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Platforms: x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [480] y: [0]\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 1 3 v)\n        Clone at x: [480] y: [0]\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 1 5 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 1 10 v)\n                Clone at x: [480] y: [0]\n                Clone at x: [480] y: [0]\n                Clone at x: [480] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (level 1 12 v)\n                    Clone at x: [480] y: [0]\n                    Clone at x: [480] y: [0]\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (level 1 15 v)\n                        Clone at x: [480] y: [0]\n                        Clone at x: [480] y: [0]\n                        Clone at x: [480] y: [0]\n                        repeat (2)\n                            switch costume to (costume1 v)\n                            Clone at x: [480] y: [0]\n                        end\n                    else\n                        if <(LEVEL) = [7]> then\n                            switch costume to (level 1 17 v)\n                            Clone at x: [480] y: [0]\n                            Clone at x: [480] y: [0]\n                            Clone at x: [480] y: [0]\n                        else\n                            if <(LEVEL) = [8]> then\n                                switch costume to (level 1 21 v)\n                                broadcast (winnnn v)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nset [platforms: x v] to [0]\nset [platforms: y v] to [0]\n\ndefine Position (x) (y)\nset size to (100) %\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 [platforms: x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\n@Landscape\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nPosition ((Platforms: x) - (SCROLL X)) ((Platforms: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [platforms: x v] to [0]\nset [platforms: y v] to [0]\nif <(LEVEL) = [1]> then\n    switch costume to (level 1 1 v)\n    Clone at x: [480] y: [0]\nelse\n    if <(LEVEL) = [2]> then\n        switch costume to (level 1 3 v)\n        Clone at x: [480] y: [0]\n    else\n        if <(LEVEL) = [3]> then\n            switch costume to (level 1 4 v)\n            Clone at x: [480] y: [0]\n            Clone at x: [480] y: [0]\n        else\n            if <(LEVEL) = [4]> then\n                switch costume to (level 1 8 v)\n                Clone at x: [480] y: [0]\n                Clone at x: [480] y: [0]\n            else\n                if <(LEVEL) = [5]> then\n                    switch costume to (level 1 11 v)\n                    Clone at x: [480] y: [0]\n                else\n                    if <(LEVEL) = [6]> then\n                        switch costume to (level 1 14 v)\n                        Clone at x: [480] y: [0]\n                        Clone at x: [480] y: [0]\n                    else\n                        if <(LEVEL) = [7]> then\n                            switch costume to (level 1 16 v)\n                            Clone at x: [480] y: [0]\n                            Clone at x: [480] y: [0]\n                        else\n                            if <(LEVEL) = [8]> then\n                                switch costume to (level 1 16 v)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Position (x) (y)\nset size to (100) %\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 [platforms: x v] by (x)\nchange [platforms: y v] by (y)\nnext costume\n\n@Saws\n\nwhen I receive [green flag v]\nhide variable [mouse v]\nhide\n\nwhen I receive [tick v]\nturn right (10) degrees\nPosition ((Saws: x) - (SCROLL X)) ((Saws: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [saws: x v] to [0]\nset [saws: y v] to [0]\nif <(LEVEL) = [2]> then\n    Clone at x: [300] y: [-6]\nelse\n    if <(LEVEL) = [3]> then\n        Clone at x: [400] y: [75]\n        Clone at x: [600] y: [75]\n    else\n        if <(LEVEL) = [4]> then\n            Clone at x: [876] y: [92]\n            Clone at x: [1029] y: [92]\n        else\n            if <(LEVEL) = [6]> then\n                Clone at x: [248] y: [81]\n            else\n                if <(LEVEL) = [7]> then\n                    Clone at x: [266] y: [-48]\n                    Clone at x: [695] y: [-48]\n                end\n            end\n        end\n    end\nend\nset [saws: x v] to [-999999]\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 [saws: x v] to (x)\nset [saws: y v] to (y)\ncreate clone of (_myself_ v)\n\nClone at x: [340] y: [27]\nClone at x: [530] y: [27]\nClone at x: [786] y: [27]\nClone at x: [1124] y: [27]\nClone at x: [1331] y: [245]\nClone at x: [1065] y: [345]\nClone at x: [825] y: [272]\nClone at x: [392] y: [245]\nClone at x: [197] y: [335]\n\nClone at x: [631] y: [11]\n\n@Exit\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [tick v]\nswitch costume to (open v)\nPosition ((Exit: x) - (SCROLL X)) ((Exit: y) - (SCROLL Y))\nif <<touching (player v)?> and <(costume [number v]) = [1]>> then\n    set [exit v] to [win]\nend\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [exit: x v] to [0]\nset [exit: y v] to [0]\nif <(LEVEL) = [1]> then\n    Clone at x: [602] y: [28]\nelse\n    if <(LEVEL) = [2]> then\n        Clone at x: [608] y: [120]\n    else\n        if <(LEVEL) = [3]> then\n            Clone at x: [1147] y: [28]\n        else\n            if <(LEVEL) = [4]> then\n                Clone at x: [1212] y: [130]\n            else\n                if <(LEVEL) = [5]> then\n                    Clone at x: [873] y: [28]\n                else\n                    if <(LEVEL) = [6]> then\n                        Clone at x: [1153] y: [28]\n                    else\n                        if <(LEVEL) = [7]> then\n                            Clone at x: [1134] y: [28]\n                        else\n                            if <(LEVEL) = [8]> then\n                                Clone at x: [09999999999] y: [99999999]\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\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 [exit: x v] to (x)\nset [exit: y v] to (y)\n\n@Joining\n\nwhen flag clicked\nhide\n\nwhen I receive [begin v]\nhide\n\nwhen I receive [connecting v]\nswitch costume to (joining v)\nshow\n\nwhen I receive [connected v]\ngo [forward v] (1322) layers\nstart sound [Connect v]\nswitch costume to (connected v)\nshow\nwait (1) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [full v]\nswitch costume to (full  v)\nshow\n\n@Loading\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo [forward v] (213) layers\nset size to (100) %\nshow\npoint in direction (90)\nclear graphic effects\ngo to x: (0) y: (-50)\n\nwhen I receive [connecting v]\nrepeat (30)\n    wait (0.3) seconds\n    next costume\nend\n\nwhen I receive [connected v]\nrepeat (20)\n    change [ghost v] effect by (5)\nend\n\n@TB\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\ngo to [front v] layer\n\n@Report Detector\n\nwhen flag clicked\ngo to x: (5) y: (-53)\nforever\n    set [report v] to <<mouse down?> and <touching (mouse-pointer v)?>>\n    if <(report) = [true]> then\n        wait (0.2) seconds\n        if <(report) = [true]> then\n            change [☁ reported? v] by (1)\n            stop [this script v]\n        end\n    end\nend\n\n@Mouse\n\nwhen I receive [ticc v]\nif <(Clone) = []> then\n    set [ghost v] effect to (100)\n    go to [front v] layer\n    go [backward v] (9999) layers\n    if <mouse down?> then\n        change size by (15)\n        turn right (14) degrees\n    end\n    change size by (((100) - (size)) / (5))\n    change x by (((mouse x) - (x position)) / (3))\n    change y by (((mouse y) - (y position)) / (3))\n    turn right (X Changed) degrees\n    set [x changed v] to ((x position) - (X))\n    turn right (1) degrees\nend\n\ndefine Particles\nset [clone v] to [Particles]\nrepeat (15)\n    create clone of (_myself_ v)\nend\nset [clone v] to []\nhide\n\nwhen I start as a clone\nif <(Clone) = [Particles]> then\n    switch costume to (mouse v)\n    set size to (pick random (0) to (75)) %\n    set [ghost v] effect to (pick random (0) to (15))\n    set [brightness v] effect to (pick random (-25) to (50))\n    set [color v] effect to (pick random (-5) to (0))\n    go to (player v)\n    point in direction (pick random (0) to (360))\n    set [v v] to (pick random (5) to (7))\n    set [i v] to (pick random (2) to (5))\n    go to [front v] layer\n    show\n    repeat until <(y position) < [-115]>\n        move (V) steps\n        change size by ((V) / (2.5))\n        change y by (I)\n        change [i v] by (-.7)\n        set [v v] to ((V) * (.9))\n        change [ghost v] effect by (2.5)\n    end\n    repeat (20)\n        change [ghost v] effect by (5)\n        move (V) steps\n        change y by (I)\n        change [i v] by (-.7)\n        set [v v] to ((V) * (.9))\n    end\n    delete this clone\nend\n\nwhen flag clicked\npoint in direction (90)\nforever\n    set [x v] to (x position)\nend\n\nwhen I receive [xd v]\nParticles\n\n@Rain\n\nwhen flag clicked\nshow\nforever\n    repeat (10)\n        create clone of (_myself_ v)\n        create clone of (_myself_ v)\n    end\n    go to [back v] layer\nend\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (3))\ngo to x: (pick random (-240) to (240)) y: (184)\nglide (pick random (0.005) to (2)) secs to x: (x position) y: (-200)\ndelete this clone\n\nwhen I receive [no rain v]\nhide\n\n@Saws2\n\nwhen I receive [green flag v]\nhide variable [mouse v]\nhide\n\nwhen I receive [tick v]\nPosition ((Saws: x) - (SCROLL X)) ((Saws: y) - (SCROLL Y))\n\nwhen I receive [setup v]\nhide\nset [collected v] to [0]\nset [saws: x v] to [0]\nset [saws: y v] to [0]\nif <(LEVEL) = [4]> then\n    Clone at x: [300] y: [0]\n    Clone at x: [546] y: [43]\nelse\n    if <(LEVEL) = [5]> then\n        Clone at x: [522] y: [-7]\n        Clone at x: [572] y: [-7]\n        Clone at x: [670] y: [-7]\n        Clone at x: [720] y: [-7]\n    else\n        if <(LEVEL) = [6]> then\n            Clone at x: [627] y: [-7]\n            Clone at x: [727] y: [-7]\n        else\n            if <(LEVEL) = [7]> then\n                Clone at x: [836] y: [-7]\n                Clone at x: [936] y: [-7]\n            end\n        end\n    end\nend\nset [saws: x v] to [-999999]\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 [saws: x v] to (x)\nset [saws: y v] to (y)\ncreate clone of (_myself_ v)\n\nClone at x: [340] y: [27]\nClone at x: [530] y: [27]\nClone at x: [786] y: [27]\nClone at x: [1124] y: [27]\nClone at x: [1331] y: [245]\nClone at x: [1065] y: [345]\nClone at x: [825] y: [272]\nClone at x: [392] y: [245]\nClone at x: [197] y: [335]\n\nClone at x: [631] y: [11]\n\n@clouds\n\nwhen flag clicked\nhide\nforever\n    create clone of (_myself_ v)\n    wait (pick random (2.5) to (3.5)) seconds\nend\n\nwhen I start as a clone\nshow\ngo [backward v] (1) layers\nset size to (pick random (50) to (70)) %\nswitch costume to (pick random (1) to (3))\nset [ghost v] effect to (pick random (30) to (45))\nset [cloud side v] to (pick random (1) to (2))\nif <(Cloud side) = [1]> then\n    go to x: (246) y: (pick random (140) to (80))\n    repeat until <(x position) < [-243]>\n        change x by ((0) - (pick random (0.5) to (2)))\n    end\nelse\n    go to x: (-246) y: (pick random (140) to (80))\n    repeat until <(x position) > [243]>\n        change x by (pick random (0.5) to (2))\n    end\nend\ndelete this clone\n\nwhen I receive [no rain v]\nhide\n\n@Sprite1\n\ndefine Edit\nif <not <<[type v] contains [1]?> or <[10] < (length of [pyv v])>>> then\n    if <mouse down?> then\n        add (pick random (3) to (4)) to [particles v]\n        add (mouse x) to [px v]\n        add [-190] to [py v]\n        add (pick random (-2) to (2)) to [pxv v]\n        add [7] to [pyv v]\n        add [1] to [type v]\n        Random colour\n    else\n        add (pick random (3) to (4)) to [particles v]\n        add (pick random (-200) to (200)) to [px v]\n        add [-190] to [py v]\n        add (pick random (-2) to (2)) to [pxv v]\n        add [11] to [pyv v]\n        add [1] to [type v]\n        Random colour\n    end\nend\nset [iterate v] to [0]\nrepeat (length of [particles v])\n    change [iterate v] by (1)\n    replace item (iterate) of [px v] with ((item (iterate) of [px v]) + (item (iterate) of [pxv v]))\n    replace item (iterate) of [py v] with ((item (iterate) of [py v]) + (item (iterate) of [pyv v]))\n    replace item (iterate) of [pxv v] with ((0) + ((item (iterate) of [pxv v]) * (0.99)))\n    replace item (iterate) of [pyv v] with ((-0.05) + ((item (iterate) of [pyv v]) * (0.99)))\n    replace item (iterate) of [particles v] with ((item (iterate) of [particles v]) + (0.2))\n    if <[10] < (item (iterate) of [particles v])> then\n        delete (iterate) of [particles v]\n        delete (iterate) of [px v]\n        delete (iterate) of [py v]\n        delete (iterate) of [pxv v]\n        delete (iterate) of [pyv v]\n        delete (iterate) of [type v]\n        delete (iterate) of [colour v]\n    else\n        if <[7] < (item (iterate) of [particles v])> then\n            if <[1] = (item (iterate) of [type v])> then\n                replace item (iterate) of [type v] with [0]\n                repeat (50)\n                    add (pick random (2) to (-2)) to [particles v]\n                    add (item (iterate) of [px v]) to [px v]\n                    add (item (iterate) of [py v]) to [py v]\n                    add (([sin v] of (pick random (1) to (360)) ) * (pick random (-5) to (5))) to [pxv v]\n                    add ((3) + (([cos v] of (pick random (1) to (360)) ) * (pick random (-5) to (5)))) to [pyv v]\n                    add [0] to [type v]\n                    add (item (iterate) of [colour v]) to [colour v]\n                end\n            end\n        end\n    end\n    if <(item (iterate) of [py v]) < [-200]> then\n        delete (iterate) of [particles v]\n        delete (iterate) of [px v]\n        delete (iterate) of [py v]\n        delete (iterate) of [pxv v]\n        delete (iterate) of [pyv v]\n        delete (iterate) of [type v]\n        delete (iterate) of [colour v]\n    end\nend\n\ndefine Render\ngo to x: (0) y: (0)\nset [ghost v] effect to (88)\nstamp\nset [iterate v] to [0]\nrepeat (length of [particles v])\n    change [iterate v] by (1)\n    set pen color to (join [0x] (item (iterate) of [colour v]))\n    if <(item (iterate) of [particles v]) < [9]> then\n        if <[5] < (item (iterate) of [particles v])> then\n            if <(item (iterate) of [type v]) = [1]> then\n                set pen color to (join [0x] (item (iterate) of [colour v]))\n            else\n                set pen color to (join (join [0x] (join (round ((14) - ((item (iterate) of [particles v]) * (1.6)))) [1])) (item (iterate) of [colour v]))\n            end\n        end\n        set pen size to (1)\n        go to x: (item (iterate) of [px v]) y: (item (iterate) of [py v])\n        pen down\n        if <(item (iterate) of [type v]) = [1]> then\n            set pen size to (((12) + (item (iterate) of [particles v])) / (4))\n        else\n            set pen size to (item (iterate) of [particles v])\n        end\n        go to x: ((item (iterate) of [pxv v]) + (item (iterate) of [px v])) y: ((item (iterate) of [pyv v]) + (item (iterate) of [py v]))\n        pen up\n    end\n    go to x: (item (iterate) of [px v]) y: (item (iterate) of [py v])\n    if <<[7] < (item (iterate) of [particles v])> or <<(item (iterate) of [particles v]) < [3]> or <[1] = (item (iterate) of [type v])>>> then\n        repeat (pick random (1) to (pick random (1) to (2)))\n            set pen size to (pick random (pick random (1) to (20)) to (pick random (120) to (90)))\n            set pen color to (join [0x] (join [03] (item (iterate) of [colour v])))\n            if <(item (iterate) of [particles v]) < [3]> then\n                set pen color to (join [0x] (join [02] (item (iterate) of [colour v])))\n            end\n            pen down\n            pen up\n        end\n        if <[1] = (item (iterate) of [type v])> then\n            repeat (3)\n                set pen size to (pick random (item (iterate) of [particles v]) to (((item (iterate) of [particles v]) - (3)) * (30)))\n                set pen color to (join (join [0x0] (letter (round ((5) + (item (iterate) of [particles v]))) of [0123456789ABCDEF])) (item (iterate) of [colour v]))\n                pen down\n                pen up\n            end\n        end\n    end\nend\n\ndefine Random colour\nif <(pick random (1) to (3)) = [1]> then\n    add (join [FF] (join (join (letter (pick random (10) to (16)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])) (join (letter (pick random (1) to (5)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])))) to [colour v]\nelse\n    if <(pick random (1) to (2)) = [1]> then\n        add (join (join (letter (pick random (1) to (5)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])) (join [FF] (join (letter (pick random (10) to (16)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])))) to [colour v]\n    else\n        add (join (join (letter (pick random (10) to (16)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])) (join (join (letter (pick random (1) to (5)) of [0123456789ABCDEF]) (letter (pick random (1) to (16)) of [0123456789ABCDEF])) [FF])) to [colour v]\n    end\nend\n\nwhen I receive [winnnn v]\nset rotation style [don't rotate v]\nhide\ndelete (all) of [particles v]\ndelete (all) of [px v]\ndelete (all) of [py v]\ndelete (all) of [pxv v]\ndelete (all) of [pyv v]\ndelete (all) of [type v]\ndelete (all) of [colour v]\nforever\n    Render\n    Edit\nend\n\nwhen flag clicked\nerase all\n\n