Sunny Grassfield - Multiplayer Platformer          #games

Instructions: A sunny and bright Grassland with unmemorable feeling...\n=========================================\nplz leave a ❤ and fav >.< as I worked 25+ hours on this...\nMy Entry for @awesomebricks1 's game contest\n=========================================\n@0014049 loved + faved!\n@QuaXX loved!\n@awesomebricks1 loved + faved!\n@Benelem12 loved + faved!\n@the_bee_1234 loved+faved!\n=========================================\nNews:\n2019/9/22 : #47 on trending! (art improvement update)\n2020/9/19 : bug fixes and added turbo mode detector\n2020/9/19: released ^_^\n=========================================\nCredits:\nbensound.com for the music\n@griffpatch for cloud engine scripts inspiration\n@awesomebricks1 for hosting this game contest\n@GravityV for everything else(including art) ^_^\n=========================================\nplz consider proposing this to be featured on:\nhttps://scratch.mit.edu/studios/4228481/\n\n#games #games #games

@Stage\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen flag clicked\nset volume to (60) %\nforever\n    play sound [bensound-tenderness v] until done\nend\n\n@screen center\n\n@player\n\nwhen flag clicked\nset [res x v] to [-183]\nset [res y v] to [0]\nset [ghost v] effect to (10)\nbroadcast (set up v) and wait\ngo to [front v] layer\ninit\nforever\n    game tick\nend\n\ndefine init\nswitch costume to (player_center v)\nset [in air? v] to [1]\nset [playerx v] to (RES X)\nset [playery v] to (RES Y)\nset [scrollx v] to ((playerX) + (100))\nset [scrolly v] to (playerY)\nset [sx v] to [0]\nset [sy v] to [0]\nposition player\nbroadcast (POSITION v)\nbroadcast (set up enemies v) and wait\n\ndefine change player x by (val)\nchange [playerx v] by (val)\nposition player\nif <<touching (hitboxes v)?> or <<touching (moving platforms v)?> or <touching (door v)?>>> then\n    repeat (8)\n        change [playery v] by (1)\n        position player\n        if <not <<touching (hitboxes v)?> or <<touching (moving platforms v)?> or <touching (door v)?>>>> then\n            stop [this script v]\n        end\n    end\n    change [playery v] by (-8)\n    repeat until <not <<touching (hitboxes v)?> or <<touching (moving platforms v)?> or <touching (door v)?>>>>\n        if <(val) < [0]> then\n            change [playerx v] by (1)\n            position player\n        else\n            change [playerx v] by (-1)\n            position player\n        end\n    end\n    set [sx v] to [0]\nend\n\ndefine change player y by (val)\nchange [playery v] by (val)\nposition player\nif <touching (door v)?> then\n    set [touching door? v] to [1]\nelse\n    set [touching door? v] to [0]\nend\nif <<touching (hitboxes v)?> or <<touching (moving platforms v)?> or <touching (door v)?>>> then\n    repeat until <not <<touching (hitboxes v)?> or <<touching (moving platforms v)?> or <touching (door v)?>>>>\n        if <(val) > [0]> then\n            change [playery v] by (-1)\n            position player\n            set [in air? v] to [1]\n        else\n            change [playery v] by (1)\n            position player\n            set [in air? v] to [0]\n        end\n    end\n    set [sy v] to [0]\nelse\n    if <touching (water v)?> then\n        if <not <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            change [sy v] by (-0.2)\n            set [in air? v] to [1]\n        end\n    else\n        if <not <touching (stairs v)?>> then\n            change [sy v] by (-1.2)\n            set [in air? v] to [1]\n        end\n    end\nend\n\ndefine position player\ngo to x: ((playerX) - (SCROLLX)) y: ((playerY) - (SCROLLY))\n\ndefine game tick\nmanager mode\nswitch costume to (hitbox v)\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [sx v] by (-1)\nend\nif <<key (right arrow v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>> then\n    change [sx v] by (1)\nend\nchange player x by (round (sx))\nposition player\nset [sx v] to ((sx) * (0.8))\nif <touching (bouncy v)?> then\n    if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        set [sy v] to [21]\n    else\n        set [sy v] to [13]\n    end\n    broadcast (boing v)\nelse\n    if <touching (stairs v)?> then\n        if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> or <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>>> then\n            if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                set [sy v] to [5]\n            end\n            if <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>> then\n                set [sy v] to [-5]\n            end\n        else\n            set [sy v] to [0]\n        end\n    else\n        if <<touching (water v)?> and <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            set [sy v] to [5]\n        else\n            if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                if <(in air?) = [0]> then\n                    set [sy v] to [13]\n                    set [in air? v] to [1]\n                end\n            end\n        end\n    end\nend\nif <(playerX) < [-350]> then\n    set [playerx v] to [-350]\nend\nif <(playerX) > [7073]> then\n    set [playerx v] to [7073]\nend\nif <(sy) < [-30]> then\n    set [sy v] to [-30]\nend\nif <(sy) > [30]> then\n    set [sy v] to [30]\nend\nchange player y by (round (sy))\nposition player\nchange [scrollx v] by (round (((playerX) - (SCROLLX)) / (5)))\nchange [scrolly v] by (round (((playerY) - (SCROLLY)) / (5)))\nif <(SCROLLX) < [-130]> then\n    set [scrollx v] to [-130]\nend\nif <(SCROLLY) < [-150]> then\n    set [scrolly v] to [-150]\nend\nbroadcast (POSITION v)\nposition player\ncostume\nif <<(playerY) < [-350]> or <touching (spikes v)?>> then\n    start sound [Clang v]\n    broadcast (relight v)\n    init\nend\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\ndefine manager mode\nif <(username) = [GravityV]> then\n    if <key (m v) pressed?> then\n        wait until <not <key (m v) pressed?>>\n        repeat until <key (m v) pressed?>\n            if <key (left arrow v) pressed?> then\n                change [sx v] by (-5)\n            end\n            if <key (right arrow v) pressed?> then\n                change [sx v] by (5)\n            end\n            if <key (up arrow v) pressed?> then\n                change [sy v] by (5)\n            end\n            if <key (down arrow v) pressed?> then\n                change [sy v] by (-5)\n            end\n            set [sx v] to ((sx) * (0.8))\n            set [sy v] to ((sy) * (0.8))\n            change [playerx v] by (round (sx))\n            change [playery v] by (round (sy))\n            if <(playerX) < [-350]> then\n                set [playerx v] to [-350]\n            end\n            if <(playerX) > [7073]> then\n                set [playerx v] to [7073]\n            end\n            change [scrollx v] by (round (((playerX) - (SCROLLX)) / (5)))\n            change [scrolly v] by (round (((playerY) - (SCROLLY)) / (5)))\n            if <(SCROLLX) < [-130]> then\n                set [scrollx v] to [-130]\n            end\n            if <(SCROLLY) < [-150]> then\n                set [scrolly v] to [-150]\n            end\n            position player\n            broadcast (POSITION v)\n        end\n        wait until <not <key (m v) pressed?>>\n        set [sx v] to [0]\n        set [sy v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    wait until <touching (water v)?>\n    start sound [Small_Splash_Audio v]\n    wait until <not <touching (water v)?>>\n    wait (0.1) seconds\nend\n\nwhen I receive [touched enemy v]\nstart sound [Clang v]\ninit\nbroadcast (relight v)\n\nwhen I receive [kill enemy v]\nset [sy v] to [13]\nstart sound [High Whoosh v]\n\nwhen I receive [touching mv v]\nswitch costume to (hitbox v)\nif <(sy) > [0]> then\n    change player y by [10]\nelse\n    change player y by [-10]\nend\ncostume\n\ndefine costume\nif <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    switch costume to (player_up v)\nelse\n    if <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n        switch costume to (player_left v)\n    else\n        if <<key (right arrow v) pressed?> or <<mouse down?> and <(x position) < (mouse x)>>> then\n            switch costume to (player_right v)\n        else\n            switch costume to (player_center v)\n        end\n    end\nend\n\nwhen I receive [reached! v]\nstop [other scripts in sprite v]\nrepeat (20)\n    change player x by [5]\n    change [ghost v] effect by (5)\nend\n\nwhen flag clicked\nset [key grabbed? v] to [false]\nforever\n    wait until <touching (key v)?>\n    set [key grabbed? v] to [true]\n    broadcast (hide key v)\n    stop [this script v]\nend\n\nwhen flag clicked\nforever\n    if <touching (enemies v)?> then\n        if <not <(sy) < [-2]>> then\n            start sound [Clang v]\n            broadcast (relight v)\n            init\n        else\n            broadcast (kill enemy v)\n        end\n        wait until <not <touching (enemies v)?>>\n    end\nend\n\nwhen I receive [speak v]\nsay (@USERNAME@) for (4) seconds\n\nwhen [t v] key pressed\nif <not <<mouse down?> and <touching (mouse-pointer v)?>>> then\n    broadcast (chat v) and wait\nend\n\nwhen flag clicked\nforever\n    if <<mouse down?> and <touching (mouse-pointer v)?>> then\n        if <not <key (t v) pressed?>> then\n            broadcast (chat\(mobile\) v) and wait\n        end\n    end\n    wait until <not <<mouse down?> and <touching (mouse-pointer v)?>>>\nend\n\nwhen flag clicked\nhide variable [inactivity frames v]\nset [inactivity frames v] to [0]\nforever\n    if <<(last_playerx) = (playerX)> and <(last_playery) = (playerY)>> then\n        change [inactivity frames v] by (1)\n    else\n        set [inactivity frames v] to [0]\n        set [last_playerx v] to (playerX)\n        set [last_playery v] to (playerY)\n    end\n    if <(inactivity frames) > [5400]> then\n        set [@player slot@ v] to [0]\n        set [inactivity frames v] to [Inactivity Timeout. Please press Green Flag and play again.]\n        show variable [inactivity frames v]\n        stop [this script v]\n    end\nend\n\n@Art\n\nwhen I receive [position v]\nposition (round ((x) - (SCROLLX))) (round ((y) - (SCROLLY)))\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (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)\nnext costume\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nrepeat (2)\n    go to [back v] layer\nend\nswitch costume to (level0 v)\nclone\n\ndefine clone\nclone at [0] [-150]\nclone at [700] [20]\nclone at [1280] [20]\nclone at [1980] [20]\nclone at [2800] [40]\nclone at [3500] [600]\nclone at [4500] [1200]\nclone at [5431] [1889]\nclone at [5900] [1889]\nclone at [6100] [1271]\nclone at [5956] [2343]\nclone at [6156] [2650]\nclone at [7055] [1271]\nclone at [7055] [764]\nset [x v] to [-9999999999999999]\n\n@hitboxes\n\nwhen I receive [position v]\nposition (round ((x) - (SCROLLX))) (round ((y) - (SCROLLY)))\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (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)\nnext costume\n\nwhen I receive [set up v]\nshow\ngo to [front v] layer\nset [ghost v] effect to (100)\nswitch costume to (level0 v)\nclone\n\ndefine clone\nclone at [0] [-150]\nclone at [700] [20]\nclone at [1280] [20]\nclone at [1980] [20]\nclone at [2800] [40]\nclone at [3500] [600]\nclone at [4500] [1200]\nclone at [5431] [1889]\nclone at [5900] [1889]\nclone at [6100] [1271]\nclone at [5956] [2343]\nclone at [6156] [2650]\nclone at [7055] [1271]\nclone at [7055] [764]\nset [x v] to [-9999999999999999]\n\n@assets\n\ngo to x: (0) y: (0)\nhide\n\nshow\n\n@water\n\nwhen I receive [position v]\nposition (round ((x) - (SCROLLX))) (round (((y) - (SCROLLY)) + (([sin v] of ((timer) * (50)) ) * (30))))\n\ndefine position (x) (y)\nset size to (400) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y) (cos)\nswitch costume to (cos)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nset [sfx_waveplayed v] to [0]\nrepeat (4)\n    go to [back v] layer\nend\nswitch costume to (water0 v)\nclone at [600] [-30] [1]\nclone at [600] [-134] [2]\nclone at [600] [-224] [2]\nclone at [600] [-314] [2]\nclone at [738] [-30] [1]\nclone at [738] [-134] [2]\nclone at [738] [-224] [2]\nclone at [738] [-314] [2]\nclone at [876] [-30] [1]\nclone at [876] [-134] [2]\nclone at [876] [-224] [2]\nclone at [876] [-314] [2]\nclone at [6468] [1115] [1]\nclone at [6468] [1011] [2]\nclone at [6468] [967] [2]\nclone at [6605] [1115] [1]\nclone at [6605] [1011] [2]\nclone at [6605] [967] [2]\nclone at [6742] [1115] [1]\nclone at [6742] [1011] [2]\nclone at [6742] [967] [2]\nclone at [6742] [923] [2]\nclone at [6742] [879] [2]\nclone at [6742] [835] [2]\nclone at [6742] [791] [2]\nclone at [6742] [747] [2]\nclone at [6869] [1115] [1]\nclone at [6869] [1011] [2]\nclone at [6869] [967] [2]\nclone at [6869] [923] [2]\nclone at [6869] [879] [2]\nclone at [6869] [835] [2]\nclone at [6869] [791] [2]\nclone at [6869] [747] [2]\nclone at [7006] [1115] [1]\nclone at [7006] [1011] [2]\nclone at [7006] [967] [2]\nclone at [7006] [923] [2]\nclone at [7006] [879] [2]\nclone at [7006] [835] [2]\nclone at [7006] [791] [2]\nclone at [7143] [1115] [1]\nclone at [7143] [1011] [2]\nclone at [7143] [967] [2]\nclone at [7143] [923] [2]\nclone at [7143] [879] [2]\nclone at [7143] [835] [2]\nclone at [7143] [791] [2]\nclone at [7143] [747] [2]\nclone at [7280] [1115] [1]\nclone at [7280] [1011] [2]\nclone at [7280] [967] [2]\nclone at [7280] [923] [2]\nclone at [7280] [879] [2]\nclone at [7280] [835] [2]\nclone at [7280] [791] [2]\nclone at [7280] [747] [2]\nclone at [7006] [747] [2]\nclone at [2920] [112] [1]\nclone at [2920] [8] [2]\nclone at [2920] [-84] [2]\nclone at [2920] [-160] [2]\nclone at [2920] [-236] [2]\nclone at [2920] [-312] [2]\nclone at [3058] [112] [1]\nclone at [3058] [8] [2]\nclone at [3058] [-84] [2]\nclone at [3058] [-160] [2]\nclone at [3058] [-236] [2]\nclone at [3058] [-312] [2]\nclone at [3196] [112] [1]\nclone at [3196] [8] [2]\nclone at [3196] [-84] [2]\nclone at [3196] [-160] [2]\nclone at [3196] [-236] [2]\nclone at [3196] [-312] [2]\nset [x v] to [-9999999999999999]\n\nwhen I start as a clone\nforever\n    if <(costume [number v]) = [1]> then\n        if <([abs v] of (distance to [player v]) ) < [300]> then\n            if <not <(SFX_WAVEPLAYED) = [1]>> then\n                broadcast (try to play sound v) and wait\n            end\n        end\n    end\nend\n\nwhen I receive [try to play sound v]\nif <not <(SFX_WAVEPLAYED) = [1]>> then\n    set [sfx_waveplayed v] to [1]\n    play sound [ocean wave v] until done\n    set [sfx_waveplayed v] to [0]\nend\n\n@thumbnail\n\nwhen flag clicked\nshow\nforever\n    go to x: (0) y: (0)\n    go to [front v] layer\n    set [ghost v] effect to (100)\nend\n\n@spikes\n\nwhen I receive [position v]\nposition (round ((x) - (SCROLLX))) (round ((y) - (SCROLLY)))\nif <(costume [number v]) = [1]> then\n    point in direction ((90) + (([sin v] of ((timer) * (100)) ) * (70)))\nelse\n    point in direction (90)\nend\n\ndefine position (x) (y)\nset size to (400) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y) (cos)\nswitch costume to (cos)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nswitch costume to (saw v)\nrepeat (3)\n    go to [back v] layer\nend\nclone at [-40] [-75] [1]\nclone at [250] [-75] [1]\nclone at [592] [-286] [1]\nclone at [692] [-286] [1]\nclone at [792] [-286] [1]\nclone at [892] [-286] [1]\nclone at [1186] [135] [2]\nclone at [1640] [30] [1]\nclone at [2550] [165] [1]\nclone at [2901] [-243] [1]\nclone at [3001] [-243] [1]\nclone at [3101] [-243] [1]\nclone at [3201] [-243] [1]\nclone at [3483] [678] [1]\nclone at [3627] [468] [1]\nclone at [3727] [468] [1]\nclone at [3827] [468] [1]\nclone at [3927] [468] [1]\nclone at [4027] [468] [1]\nclone at [4127] [468] [1]\nclone at [4333] [1237] [1]\nclone at [4395] [1237] [1]\nclone at [4750] [957] [1]\nclone at [4850] [957] [1]\nclone at [4950] [957] [1]\nclone at [5050] [957] [1]\nclone at [5921] [1018] [1]\nclone at [6021] [1018] [1]\nclone at [6121] [1018] [1]\nclone at [6221] [1018] [1]\nclone at [6321] [1018] [1]\nclone at [6421] [1018] [1]\nclone at [6000] [1885] [1]\nclone at [6147] [1205] [1]\nclone at [6050] [2587] [1]\nclone at [6373] [1204] [1]\nclone at [6905] [1200] [1]\nclone at [7005] [1200] [1]\nclone at [7105] [1200] [1]\nclone at [7205] [1200] [1]\nclone at [7305] [1200] [1]\nclone at [7405] [1200] [1]\nclone at [6903] [1002] [1]\nclone at [6762] [875] [1]\nset [x v] to [-9999999999999999]\n\n@stairs\n\nwhen I receive [position v]\nposition (round ((x) - (SCROLLX))) (round ((y) - (SCROLLY)))\n\ndefine position (x) (y)\nset size to (400) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y) (cos)\nswitch costume to (cos)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nrepeat (2)\n    go to [back v] layer\nend\nswitch costume to (stair v)\nclone at [315] [123] [1]\nclone at [315] [40] [1]\nclone at [890] [123] [2]\nclone at [890] [40] [2]\nclone at [2454] [143] [1]\nclone at [2454] [60] [1]\nclone at [3161] [292] [1]\nclone at [2932] [580] [1]\nclone at [4130] [1044] [1]\nclone at [4130] [1127] [1]\nclone at [4130] [1210] [1]\nclone at [4996] [1614] [1]\nclone at [5012] [1850] [1]\nclone at [5012] [1933] [1]\nclone at [6269] [1306] [1]\nclone at [6269] [1389] [1]\nclone at [6269] [1472] [1]\nclone at [6269] [1555] [1]\nclone at [6269] [1638] [1]\nclone at [6269] [1721] [1]\nclone at [6269] [1804] [1]\nclone at [6269] [1887] [1]\nclone at [6269] [1970] [1]\nclone at [6269] [2053] [1]\nclone at [6269] [2136] [1]\nclone at [6269] [2219] [1]\nclone at [6269] [2302] [1]\nclone at [5828] [2503] [1]\nclone at [5890] [2589] [1]\nclone at [1329] [145] [2]\nset [x v] to [-9999999999999999]\n\n@enemies\n\nwhen I receive [position v]\nposition (round (((x) - (SCROLLX)) + (([sin v] of ((timer) * (100)) ) * (100)))) (round ((y) - (SCROLLY)))\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y)\nclear graphic effects\nswitch costume to (enemy v)\nset [x v] to (x)\nset [y v] to (y)\nposition ((x) - (SCROLLX)) ((y) - (SCROLLY))\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up enemies v]\nbroadcast (delete enemy clones v) and wait\nclone\n\ngo [backward v] (20) layers\n\nwhen I receive [delete enemy clones v]\ndelete this clone\n\nwhen I receive [kill enemy v]\nif <touching (player v)?> then\n    repeat (5)\n        change [ghost v] effect by (20)\n        change [y v] by (-5)\n    end\n    delete this clone\nend\n\ndefine clone\nshow\ngo to [front v] layer\nswitch costume to (enemy v)\nclone at [1490] [18]\nclone at [5298] [1935]\nset [x v] to [-9999999999999999]\n\n@moving platforms\n\nwhen I receive [position v]\nif <(costume [number v]) = [1]> then\n    position (round (((x) - (SCROLLX)) + (([cos v] of ((days since 2000) * (4000000)) ) * (200)))) (round ((y) - (SCROLLY)))\nend\nif <(costume [number v]) = [2]> then\n    position (round ((x) - (SCROLLX))) (round (((y) - (SCROLLY)) + (([cos v] of ((days since 2000) * (5000000)) ) * (150))))\n    if <touching (player v)?> then\n        broadcast (touching mv v)\n    end\nend\nif <(costume [number v]) = [3]> then\n    position (round (((x) - (SCROLLX)) + (([cos v] of ((days since 2000) * (4000000)) ) * (200)))) (round (((y) - (SCROLLY)) + (([cos v] of ((days since 2000) * (4000000)) ) * (150))))\n    if <touching (player v)?> then\n        broadcast (touching mv v)\n    end\nend\n\ndefine position (x) (y)\nset size to (400) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y) (cos)\nswitch costume to (cos)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nset [sfx_waveplayed v] to [0]\ngo to [back v] layer\nswitch costume to (1 v)\nclone at [2150] [0] [1]\nclone at [3050] [300] [2]\nclone at [3859] [835] [3]\nclone at [4861] [1500] [2]\nset [x v] to [-9999999999999999]\n\n@checkpoints\n\nwhen I receive [position v]\ngo to [front v] layer\nset size to (400) %\ngo to x: ((x) - (SCROLLX)) y: ((y) - (SCROLLY))\nset size to (100) %\nturn right (((90) - (direction)) / (5)) degrees\n\nwhen I receive [set up v]\nclone at [1756] [130] [1]\nclone at [3309] [735] [1]\nclone at [5200] [1975] [1]\nclone at [5970] [2410] [1]\nclone at [6700] [1135] [1]\nset [x v] to [-99999999999]\n\ndefine clone at (x) (y) (type)\nswitch costume to (type)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nforever\n    if <(costume [number v]) = [1]> then\n        if <touching (player v)?> then\n            set [res x v] to (x)\n            set [res y v] to (y)\n            point in direction (140)\n            start sound [Water Drop v]\n            clear graphic effects\n            repeat (5)\n                change [brightness v] effect by (20)\n                change [ghost v] effect by (10)\n            end\n            switch costume to (grabbed_c v)\n            repeat (5)\n                change [brightness v] effect by (-20)\n            end\n            clear graphic effects\n            set [ghost v] effect to (50)\n            stop [this script v]\n        end\n    end\nend\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nset [res x v] to [6700]\nset [res y v] to [1135]\n\n@bouncy\n\nwhen I receive [position v]\ngo to [front v] layer\nposition (round ((x) - (SCROLLX))) (round ((y) - (SCROLLY)))\n\ndefine position (x) (y)\nset size to (400) %\ngo to x: (x) y: (y)\nset size to (100) %\nif <<(round (x)) = (round (x position))> and <(round (y)) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\ndefine clone at (x) (y)\nswitch costume to (bouncy v)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [relight v]\nclear graphic effects\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [set up v]\nswitch costume to (bouncy v)\nclone at [2643] [175]\nclone at [4254] [1260]\nclone at [4496] [1260]\nclone at [5655] [1732]\nset [x v] to [-9999999999999999]\n\nwhen I receive [boing v]\nstart sound [boing v]\nclear graphic effects\nrepeat (10)\n    change [ghost v] effect by (5)\nend\nrepeat (10)\n    change [ghost v] effect by (-5)\nend\n\nwhen I start as a clone\nforever\n    repeat (25)\n        change [y v] by (0.2)\n    end\n    repeat (25)\n        change [y v] by (-0.2)\n    end\nend\n\n@end Flag\n\ndefine set end flag at (x) (y)\nswitch costume to (top2 v)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\nswitch costume to (base2 v)\ncreate clone of (_myself_ v)\n\nwhen I receive [position v]\nposition ((x) - (SCROLLX)) ((y) - (SCROLLY))\n\nwhen I receive [set up v]\nset [reached end? v] to [false]\nset end flag at [7060] [924]\nset [x v] to [-999999999]\n\ndefine position (x) (y)\ngo to x: (round (x)) y: (round (y))\npoint in direction (90)\nif <<(round (x)) = (x position)> and <(round (y)) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        set [reached end? v] to [true]\n        stop [this script v]\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(costume [number v]) = [2]> then\n        wait until <(REACHED END?) = [true]>\n        set [@time@ v] to (timer)\n        if <(@TIME@) < (HIGHSCORE\(value only\))> then\n            broadcast (new highscore v)\n        end\n        start sound [Win v]\n        broadcast (reached! v)\n        repeat (8)\n            change [y v] by (-5)\n            position ((x) - (SCROLLX)) ((y) - (SCROLLY))\n        end\n        wait (2) seconds\n        if <(@TIME@) = (HIGHSCORE\(value only\))> then\n            broadcast (show end screen with higscore v)\n        else\n            broadcast (show end screen v)\n        end\n        stop [this script v]\n    end\nend\n\nwhen I receive [relight v]\nclear graphic effects\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen flag clicked\nwait until <<key (any v) pressed?> or <mouse down?>>\nreset timer\n\ndefine reset highscore to (val) <lock>\nif <lock> then\n    set [@time@ v] to (val)\n    broadcast (new highscore v)\nend\n\nreset highscore to [500] \n\n@end message\n\nwhen flag clicked\nhide variable [@time@ v]\nhide variable [highscore\(decoded\) v]\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\n\nwhen I receive [show end screen v]\nset [@player slot@ v] to [0]\nswitch costume to (won v)\nrepeat (10)\n    go to [front v] layer\n    change [ghost v] effect by (-10)\nend\nshow variable [@time@ v]\nshow variable [highscore\(decoded\) v]\n\nwhen I receive [show end screen with higscore v]\nset [@player slot@ v] to [0]\nswitch costume to (new highscore v)\nrepeat (10)\n    go to [front v] layer\n    change [ghost v] effect by (-10)\nend\nshow variable [@time@ v]\nshow variable [highscore\(decoded\) v]\n\n@door\n\nwhen I receive [position v]\ngo to [front v] layer\ngo [backward v] (2) layers\nset size to (400) %\ngo to x: ((6810) - (SCROLLX)) y: ((1032) - (SCROLLY))\nset size to (100) %\n\nwhen flag clicked\nforever\n    wait until <<(touching door?) = [1]> and <(KEY GRABBED?) = [true]>>\n    start sound [Door Closing v]\n    repeat (5)\n        change [ghost v] effect by (20)\n    end\n    hide\n    stop [this script v]\nend\n\nwhen flag clicked\nshow\nclear graphic effects\nset size to (400) %\ngo to x: ((6810) - (SCROLLX)) y: ((1032) - (SCROLLY))\nset size to (100) %\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\n@key\n\nwhen I receive [position v]\nset size to (400) %\ngo to x: ((5982) - (SCROLLX)) y: ((2943) - (SCROLLY))\nset size to (100) %\ngo to [front v] layer\n\nwhen I receive [hide key v]\nstart sound [Collect v]\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\n\nwhen flag clicked\nshow\nclear graphic effects\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\n@coins\n\nwhen I receive [set up v]\nclone at [-8] [-5]\nclone at [42] [-5]\nclone at [92] [-5]\nclone at [272] [66]\nclone at [272] [116]\nclone at [434] [199]\nclone at [484] [199]\nclone at [592] [-159]\nclone at [642] [-159]\nclone at [692] [-159]\nclone at [742] [-159]\nclone at [792] [-159]\nclone at [987] [203]\nclone at [1037] [203]\nclone at [1087] [203]\nclone at [1661] [152]\nclone at [1711] [152]\nclone at [1761] [152]\nclone at [2134] [118]\nclone at [2184] [118]\nclone at [2234] [118]\nclone at [2284] [118]\nclone at [2717] [336]\nclone at [2767] [336]\nclone at [2817] [336]\nclone at [2969] [-120]\nclone at [3019] [-120]\nclone at [3069] [-120]\nclone at [2931] [467]\nclone at [2931] [517]\nclone at [2931] [627]\nclone at [2931] [677]\nclone at [2462] [750]\nclone at [3362] [750]\nclone at [3412] [750]\nclone at [3652] [638]\nclone at [3652] [588]\nclone at [3652] [538]\nclone at [4060] [1031]\nclone at [4060] [1081]\nclone at [4060] [1131]\nclone at [4060] [1181]\nclone at [4060] [1231]\nclone at [4341] [1421]\nclone at [4391] [1421]\nclone at [4750] [1493]\nclone at [4750] [1543]\nclone at [4750] [1593]\nclone at [4750] [1643]\nclone at [4750] [1693]\nclone at [5051] [1591]\nclone at [5051] [1641]\nclone at [5061] [1839]\nclone at [5061] [1889]\nclone at [5061] [1939]\nclone at [5061] [1989]\nclone at [5345] [1771]\nclone at [5395] [1771]\nclone at [5445] [1771]\nclone at [5495] [1771]\nclone at [5545] [1771]\nclone at [5595] [1771]\nclone at [5908] [1699]\nclone at [5908] [1649]\nclone at [5908] [1599]\nclone at [5908] [1549]\nclone at [5908] [1499]\nclone at [5908] [1449]\nclone at [5908] [1399]\nclone at [5908] [1349]\nclone at [6200] [1768]\nclone at [6200] [1818]\nclone at [6200] [1868]\nclone at [6200] [1918]\nclone at [6350] [1868]\nclone at [6350] [1918]\nclone at [6350] [1968]\nclone at [6350] [2018]\nclone at [6066] [2428]\nclone at [6116] [2428]\nclone at [6166] [2428]\nclone at [5777] [2519]\nclone at [5777] [2569]\nclone at [6094] [2700]\nclone at [6144] [2700]\nclone at [1252] [219]\nclone at [1292] [219]\nclone at [1342] [219]\nclone at [6486] [1101]\nclone at [6536] [1101]\nclone at [6586] [1101]\nclone at [6636] [1101]\nclone at [6901] [923]\nclone at [6951] [923]\nclone at [6991] [923]\nclone at [6800] [1017]\nclone at [6800] [967]\nclone at [6800] [917]\nset [x v] to [-9999999999999999999]\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 [position v]\ngo to [front v] layer\ngo [backward v] (15) layers\nset size to (400) %\ngo to x: ((x) - (SCROLLX)) y: ((y) - (SCROLLY))\nset size to (100) %\n\nwhen I start as a clone\nwait (pick random (1) to (3)) seconds\nforever\n    repeat (12)\n        change [y v] by (0.5)\n        wait (0.01) seconds\n    end\n    repeat (12)\n        change [y v] by (-0.5)\n        wait (0.01) seconds\n    end\nend\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I start as a clone\nforever\n    if <touching (player v)?> then\n        set volume to (30) %\n        start sound [Coin v]\n        repeat (12)\n            change [ghost v] effect by ((100) / (12))\n        end\n        delete this clone\n    end\nend\n\n@birds SFX\n\nwhen flag clicked\nforever\n    wait (pick random (5) to (25)) seconds\n    set volume to (pick random (50) to (100)) %\n    play sound (pick random (1) to (2)) until done\nend\n\nwhen flag clicked\nforever\n    wait (pick random (5) to (25)) seconds\n    set volume to (pick random (50) to (100)) %\n    play sound (pick random (1) to (2)) until done\nend\n\nwhen flag clicked\nhide\n\n@cloud\n\ndefine delete and rewrite code data list\ndelete all of [run:data v]\nset [readdata# v] to [1]\nset [datachars v] to [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-*/~`!@#$%^&*\(\)_=\[\]\{}|;':",./<>?]\nrepeat (99)\n    add [] to [run:data v]\nend\nrepeat (length of (datachars))\n    add (letter (readdata#) of (datachars)) to [run:data v]\n    change [readdata# v] by (1)\nend\nadd [ ] to [run:data v]\n\ndefine encode string (val) and add to encoded value (new encode section?) (boolean)\nswitch costume to (lowercase v)\nif <(boolean) = [true]> then\n    set [encoded value v] to []\nend\nset [readdata# v] to [1]\nrepeat (length of (val))\n    set [word v] to (letter (readdata#) of (val))\n    switch costume to (join (word) [\)])\n    set [word v] to (item # of (word) in [run:data v])\n    if <(costume [name v]) = [lowercase]> then\n        if <not <(word) = [0]>> then\n            set [encoded value v] to (join (encoded value) (word))\n        else\n            set [encoded value v] to (join (encoded value) (item # of [*] in [run:data v]))\n        end\n    else\n        if <not <(word) = [0]>> then\n            set [encoded value v] to (join (encoded value) ((word) + (26)))\n        else\n            set [encoded value v] to (join (encoded value) (item # of [*] in [run:data v]))\n        end\n    end\n    switch costume to (lowercase v)\n    change [readdata# v] by (1)\nend\nset [encoded value v] to (join (encoded value) [000])\n\ndefine decode string (code) and add to value (new decode section?) (boolean)\nset [decoded result v] to []\nif <(boolean) = [true]> then\n    set [encoded value v] to (code)\n    set [readdata# v] to [1]\nend\nforever\n    set [decode idx v] to (join (letter (readdata#) of (encoded value)) (join (letter ((readdata#) + (1)) of (encoded value)) (letter ((readdata#) + (2)) of (encoded value))))\n    change [readdata# v] by (3)\n    if <(decode IDX) < [1]> then\n        stop [this script v]\n    end\n    set [decoded result v] to (join (decoded result) (item (decode IDX) of [run:data v]))\nend\n\nwhen flag clicked\nset [@username@ v] to (username)\nset [ghost v] effect to (10)\ngo to [front v] layer\ngo [backward v] (1) layers\nhide\nset [@player slot@ v] to [0]\nset [@connected@? v] to <(@PLAYER SLOT@) > [0]>\nclone: [7]\nbroadcast (tick v)\nbroadcast (@GET_SLOT v) and wait\n\ndefine clone: (opponents count)\nset [offline frames v] to [0]\nset [clone# v] to [1]\nrepeat ((opponents count) - (1))\n    create clone of (_myself_ v)\n    change [clone# v] by (1)\nend\n\ndefine send (data) to (cloud#)\nif <(cloud#) = [1]> then\n    set [☁ p1 v] to (data)\nelse\n    if <(cloud#) = [2]> then\n        set [☁ p2 v] to (data)\n    else\n        if <(cloud#) = [3]> then\n            set [☁ p3 v] to (data)\n        else\n            if <(cloud#) = [4]> then\n                set [☁ p4 v] to (data)\n            else\n                if <(cloud#) = [5]> then\n                    set [☁ p5 v] to (data)\n                else\n                    if <(cloud#) = [6]> then\n                        set [☁ p6 v] to (data)\n                    else\n                        if <(cloud#) = [7]> then\n                            set [☁ p7 v] to (data)\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine get val (cloud#)\nif <(cloud#) = [1]> then\n    set [decoded result v] to (☁ P1)\nelse\n    if <(cloud#) = [2]> then\n        set [decoded result v] to (☁ P2)\n    else\n        if <(cloud#) = [3]> then\n            set [decoded result v] to (☁ P3)\n        else\n            if <(cloud#) = [4]> then\n                set [decoded result v] to (☁ P4)\n            else\n                if <(cloud#) = [5]> then\n                    set [decoded result v] to (☁ P5)\n                else\n                    if <(cloud#) = [6]> then\n                        set [decoded result v] to (☁ P6)\n                    else\n                        if <(cloud#) = [7]> then\n                            set [decoded result v] to (☁ P7)\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [@get_slot v]\nbroadcast (connecting v)\nget val (clone#)\nset [slot_last_val v] to (join [A] (decoded result))\nwait (3.5) seconds\nget val (clone#)\nif <(join [A] (decoded result)) = (slot_last_val)> then\n    set [@player slot@ v] to (clone#)\nend\nif <(@PLAYER SLOT@) > [0]> then\n    broadcast (connected v)\nelse\n    broadcast (failed v)\nend\nset [@connected@? v] to [true]\n\nwhen I receive [tick v]\nforever\n    if <(@PLAYER SLOT@) = (clone#)> then\n        hide\n        encode string ([playerx v] of [player v]) and add to encoded value (new encode section?) [true]\n        encode string ([playery v] of [player v]) and add to encoded value (new encode section?) []\n        encode string ([costume name v] of [player v]) and add to encoded value (new encode section?) []\n        encode string (@USERNAME@) and add to encoded value (new encode section?) []\n        encode string (round ((days since 2000) * (1000000))) and add to encoded value (new encode section?) []\n        send (encoded value) to (@PLAYER SLOT@)\n    else\n        disconnection time out: [70]\n        decode string (☁ C_HIGHSCORE) and add to value (new decode section?) [true]\n        set [highscore\(decoded\) v] to (decoded result)\n        set [highscore\(value only\) v] to (decoded result)\n        decode string [] and add to value (new decode section?) []\n        set [highscore\(decoded\) v] to (join (HIGHSCORE\(decoded\)) (join [  by  ] (decoded result)))\n        get val (clone#)\n        decode string (decoded result) and add to value (new decode section?) [true]\n        change [self.x v] by (((decoded result) - (self.x)) / (2.5))\n        decode string [] and add to value (new decode section?) []\n        change [self.y v] by (((decoded result) - (self.y)) / (2.5))\n        decode string [] and add to value (new decode section?) []\n        switch costume to (decoded result)\n        position ((self.x) - (SCROLLX)) ((self.y) - (SCROLLY))\n    end\nend\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen flag clicked\nforever\n    if <<key (space v) pressed?> and <(username) = [GravityV]>> then\n        show variable [☁ c_highscore v]\n        show variable [highscore\(value only\) v]\n        show variable [☁ p1 v]\n        show variable [☁ p2 v]\n        show variable [☁ p3 v]\n        show variable [☁ p4 v]\n        show variable [☁ p5 v]\n        show variable [☁ p6 v]\n        show variable [☁ p7 v]\n    else\n        hide variable [☁ c_highscore v]\n        hide variable [highscore\(value only\) v]\n        hide variable [☁ p1 v]\n        hide variable [☁ p2 v]\n        hide variable [☁ p3 v]\n        hide variable [☁ p4 v]\n        hide variable [☁ p5 v]\n        hide variable [☁ p6 v]\n        hide variable [☁ p7 v]\n    end\nend\n\nwhen I receive [new highscore v]\nrepeat (10)\n    encode string (@TIME@) and add to encoded value (new encode section?) [true]\n    encode string (username) and add to encoded value (new encode section?) []\n    set [☁ c_highscore v] to (encoded value)\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(round (x position)) = (round (x))> and <(round (y position)) = (round (y))>> then\n    point in direction (90)\n    decode string [] and add to value (new decode section?) []\n    think (decoded result)\nelse\n    switch costume to (arrow v)\n    point towards (screen center v)\n    move (20) steps\n    if <touching (mouse-pointer v)?> then\n        decode string [] and add to value (new decode section?) []\n        think (decoded result)\n    else\n        think []\n    end\nend\n\ndefine disconnection time out: (frames)\nget val (clone#)\nif <(join [A] (decoded result)) = (disconnection_value)> then\n    change [offline frames v] by (1)\n    if <(offline frames) > (frames)> then\n        hide\n    end\nelse\n    set [offline frames v] to [0]\n    set [disconnection_value v] to (join [A] (decoded result))\n    if <(@CONNECTED@?) = [true]> then\n        show\n    end\nend\n\n@chat\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\n\nwhen I receive [chat v]\ngo to [front v] layer\nset [ghost v] effect to (100)\nrepeat (5)\n    change [ghost v] effect by (-10)\n    go to [front v] layer\nend\nwait until <key (any v) pressed?>\nif <key (1 v) pressed?> then\n    set [message v] to [Hey! ^_^]\nelse\n    if <key (2 v) pressed?> then\n        set [message v] to [:D]\n    else\n        if <key (3 v) pressed?> then\n            set [message v] to [Let's chase!]\n        else\n            if <key (4 v) pressed?> then\n                set [message v] to [Sure]\n            else\n                if <key (5 v) pressed?> then\n                    set [message v] to [Nope]\n                else\n                    if <key (6 v) pressed?> then\n                        set [message v] to [Sorry]\n                    else\n                        if <key (7 v) pressed?> then\n                            set [message v] to [Let's race!]\n                        else\n                            if <key (8 v) pressed?> then\n                                set [message v] to [Go!]\n                            else\n                                if <key (9 v) pressed?> then\n                                    set [message v] to [Highscore!]\n                                else\n                                    if <key (0 v) pressed?> then\n                                        set [message v] to [BYE...]\n                                    else\n                                        set [message v] to []\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nbroadcast (hide chat v)\nif <not <(message) = []>> then\n    set [@username@ v] to (message)\n    broadcast (speak v) and wait\n    set [@username@ v] to (username)\nend\n\nwhen I receive [chat\(mobile\) v]\ngo to [front v] layer\nset [ghost v] effect to (100)\nrepeat (5)\n    change [ghost v] effect by (-10)\n    go to [front v] layer\nend\nask [] and wait\nif <(answer) = [1]> then\n    set [message v] to [Hey! ^_^]\nelse\n    if <(answer) = [2]> then\n        set [message v] to [:D]\n    else\n        if <(answer) = [3]> then\n            set [message v] to [Let's chase!]\n        else\n            if <(answer) = [4]> then\n                set [message v] to [Sure]\n            else\n                if <(answer) = [5]> then\n                    set [message v] to [Nope]\n                else\n                    if <(answer) = [6]> then\n                        set [message v] to [Sorry]\n                    else\n                        if <(answer) = [7]> then\n                            set [message v] to [Let's race!]\n                        else\n                            if <(answer) = [8]> then\n                                set [message v] to [Go!]\n                            else\n                                if <(answer) = [9]> then\n                                    set [message v] to [Highscore!]\n                                else\n                                    if <(answer) = [0]> then\n                                        set [message v] to [BYE...]\n                                    else\n                                        set [message v] to []\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nbroadcast (hide chat v)\nif <not <(message) = []>> then\n    set [@username@ v] to (message)\n    broadcast (speak v) and wait\n    set [@username@ v] to (username)\nend\n\nwhen I receive [hide chat v]\nrepeat (5)\n    change [ghost v] effect by (10)\nend\n\nwhen [b v] key pressed\nif <(username) = [GravityV]> then\n    set [@username@ v] to [plz reload the page for updates ^_^]\nend\n\n@sun\n\nwhen flag clicked\nswitch costume to (costume2 v)\ncreate clone of (_myself_ v)\nshow\nset size to (100) %\nrepeat (10)\n    go to [back v] layer\nend\nswitch costume to (costume1 v)\ngo to x: (70) y: (120)\n\nwhen I start as a clone\nshow\nforever\n    if <(costume [number v]) = [1]> then\n    go to x: (70) y: (120)\nend\n\nwhen I receive [relight v]\nset [brightness v] effect to (100)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\n@messages\n\nwhen flag clicked\ngo to [front v] layer\nshow\nset [ghost v] effect to (100)\nset size to (90) %\ngo to x: (0) y: (-200)\n\nwhen I receive [connected v]\ngo to [front v] layer\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ngo to x: (0) y: (-200)\nswitch costume to (connected!2 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\n    change y by (((0) - (y position)) / (5))\nend\nwait (3) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\n    change y by (((-200) - (y position)) / (5))\nend\n\nwhen I receive [failed v]\ngo to [front v] layer\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ngo to x: (0) y: (-200)\nswitch costume to (fail2 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\n    change y by (((10) - (y position)) / (5))\nend\n\nwhen I receive [connecting v]\ngo to x: (0) y: (-200)\ngo to [front v] layer\nswitch costume to (connecting2 v)\nrepeat (10)\n    change [ghost v] effect by (-10)\n    change y by (((0) - (y position)) / (5))\nend\n\nwhen I receive [reached! v]\ngo to x: (0) y: (-200)\ngo to [front v] layer\nswitch costume to (something v)\nrepeat (10)\n    change [ghost v] effect by (-10)\n    change y by (((0) - (y position)) / (5))\nend\n\n@turbo\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    set y to (0)\n    repeat until <(timer) > [5]>\n        change y by (1)\n    end\n    set [turbo? v] to <(y position) > [15]>\n    set [timer v] to [0]\n    if <(turbo?) = [true]> then\n        stop [all v]\n    end\nend\n\nwhen flag clicked\nset [timer v] to [0]\nforever\n    change [timer v] by (1)\n    wait (0.001) seconds\nend\n\n