Midnight Mission || ☁️ A multiplayer scrolling platformer                     #games #all #art
@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]\n\nwhen I receive [play game v]\nswitch backdrop to (backdrop1 v)\nforever\n    play sound (pick random (1) to (3)) until done\nend\n\n@Blank\n\n@Player\n\nwhen flag clicked\ndelete all of [chat v]\nadd [Hi!] to [chat v]\nadd [Come with me!] to [chat v]\nadd [Ok!] to [chat v]\nadd [Nice!] to [chat v]\nadd [Look at me!] to [chat v]\nadd [Be careful!] to [chat v]\nadd [lol] to [chat v]\nadd [Bye!] to [chat v]\nadd [No thank you.] to [chat v]\n\nwhen flag clicked\nshow list [chat v]\nset [is the chat open v] to [0]\nforever\n    if <<key (t v) pressed?> or <<touching (mouse-pointer v)?> and <mouse down?>>> then\n        if <(is the chat open) = [1]> then\n            set [is the chat open v] to [0]\n        else\n            set [is the chat open v] to [1]\n        end\n        wait until <<not <<touching (mouse-pointer v)?> and <mouse down?>>> and <not <key (t v) pressed?>>>\n    end\n    Chat\nend\n\ndefine Chat\nif <(is the chat open) = [1]> then\n    if <key (1 v) pressed?> then\n        set [chat v] to [1]\n        say (item (CHAT) of [chat v])\n        wait (2) seconds\n        say []\n        set [chat v] to [0]\n    else\n        if <key (2 v) pressed?> then\n            set [chat v] to [2]\n            say (item (CHAT) of [chat v])\n            wait (2) seconds\n            say []\n            set [chat v] to [0]\n        else\n            if <key (3 v) pressed?> then\n                set [chat v] to [3]\n                say (item (CHAT) of [chat v])\n                wait (2) seconds\n                say []\n                set [chat v] to [0]\n            else\n                if <key (4 v) pressed?> then\n                    set [chat v] to [4]\n                    say (item (CHAT) of [chat v])\n                    wait (2) seconds\n                    say []\n                    set [chat v] to [0]\n                else\n                    if <key (5 v) pressed?> then\n                        set [chat v] to [5]\n                        say (item (CHAT) of [chat v])\n                        wait (2) seconds\n                        say []\n                        set [chat v] to [0]\n                    else\n                        if <key (6 v) pressed?> then\n                            set [chat v] to [6]\n                            say (item (CHAT) of [chat v])\n                            wait (2) seconds\n                            say []\n                            set [chat v] to [0]\n                        else\n                            if <key (7 v) pressed?> then\n                                set [chat v] to [7]\n                                say (item (CHAT) of [chat v])\n                                wait (2) seconds\n                                say []\n                                set [chat v] to [0]\n                            else\n                                if <key (8 v) pressed?> then\n                                    set [chat v] to [8]\n                                    say (item (CHAT) of [chat v])\n                                    wait (2) seconds\n                                    say []\n                                    set [chat v] to [0]\n                                else\n                                    if <key (9 v) pressed?> then\n                                        set [chat v] to [9]\n                                        say (item (CHAT) of [chat v])\n                                        wait (2) seconds\n                                        say []\n                                        set [chat v] to [0]\n                                    else\n                                        if <key (a v) pressed?> then\n                                            set [chat v] to [9]\n                                            say (item (CHAT) of [chat v])\n                                            wait (2) seconds\n                                            say []\n                                            set [chat v] to [0]\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [max players v] to [10]\nset [my player # v] to [0]\nset [connect v] to [Connecting]\nbroadcast (setup opponents v) and wait\nbroadcast (join game v) and wait\nif <(MY PLAYER #) > [0]> then\n    set [connect v] to [Connected]\nelse\n    set [connect v] to [Full]\nend\nbroadcast (begin v)\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 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                            else\n                                if <(player) = [9]> then\n                                    set [☁ p9 v] to (value)\n                                else\n                                    if <(player) = [10]> then\n                                        set [☁ p10 v] to (value)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine send cloud data\nset [encoded v] to []\nwrite (costume [number v]) to encoded\nwrite (username) to encoded\nwrite (round ((timer) * (10))) to encoded\nwrite (x) to encoded\nwrite (y) to encoded\nwrite (CHAT) to encoded\nset cloud # (MY PLAYER #) to (encoded)\n\nwhen flag clicked\nbroadcast (Green flag v) and wait\nbroadcast (Play Game v) and wait\n\nwhen I receive [green flag v]\nhide\ngo to [front v] layer\n\nwhen I receive [play game v]\nset [level v] to [1]\nforever\n    broadcast (Reset v) and wait\n    broadcast (Setup v) and wait\n    Reset\n    repeat until <(EXIT) > []>\n        Tick\n        broadcast (Tick v)\n    end\n    if <(EXIT) = [win]> then\n        Game - Win\n    else\n        set [exit v] to []\n    end\nend\n\ndefine Reset\nif <(CHECKPOINT) = [0]> then\n    set [x v] to [-100]\n    set [y v] to [-60]\n    set [scroll y v] to (y)\n    set [scroll x v] to (x)\nelse\n    if <(CHECKPOINT) = [1]> then\n        set [x v] to [210]\n        set [y v] to [60]\n        set [scroll y v] to (y)\n        set [scroll x v] to (x)\n    else\n        if <(CHECKPOINT) = [2]> then\n    end\nend\nset [sx v] to [0]\nset [sy v] to [0]\nset [in air v] to [5]\nset [timout v] to [0]\nset [exit v] to []\nset size to (100) %\nshow\nset rotation style [left-right v]\n\ndefine Tick\nif <touching (ladder v)?> then\n    change [sx v] by ((2) * (<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<((mouse x) - (20)) > (x position)> and <mouse down?>>> - <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<((mouse x) + (20)) < (x position)> and <mouse down?>>>))\n    set [sx v] to ((sx) * (0.65))\nelse\n    change [sx v] by ((1.8) * (<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<((mouse x) - (20)) > (x position)> and <mouse down?>>> - <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<((mouse x) + (20)) < (x position)> and <mouse down?>>>))\n    set [sx v] to ((sx) * (0.75))\nend\nif <([abs v] of (sx) ) > [0.9]> then\n    Change Player x by (round (sx))\nend\nif <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> then\n    if <(in air) < [3]> then\n        if <(sy) > [-2]> then\n            set [sy v] to [12]\n        end\n    end\nend\nif <touching (bouncy v)?> then\n    set [sy v] to [20]\nend\nif <touching (ladder v)?> then\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> then\n        change [y v] by (6)\n    end\n    if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<((mouse y) + (20)) < (y position)> and <mouse down?>>> then\n        change [y v] by (-6)\n    end\n    set [sy v] to [0]\nelse\n    if <(sy) > [-20]> then\n        change [sy v] by (-1.3)\n    end\nend\nChange player y by (sy)\n Test - Die\nset [scroll x v] to (x)\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nPosition\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 <<<<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<((mouse x) - (20)) > (x position)> and <mouse down?>>> or <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<((mouse x) + (20)) < (x position)> and <mouse down?>>>> or <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> or <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<((mouse y) + (20)) > (y position)> and <mouse down?>>>>> then\n    set [timout v] to [0]\nelse\n    change [timout v] by (1)\nend\nif <(timout) > [999]> then\n    broadcast (timeout v)\n    hide\nend\nif <touching color (#30353e)?> then\n    broadcast (Win v)\n    set [win v] to [Yes]\nend\nif <not <touching color (#30353e)?>> then\n    set [win v] to [No]\nend\n\ndefine Change Player x by (sx)\nchange [x v] by (sx)\nPosition\nif <touching (platforms v)?> then\n    repeat (8)\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 (-8)\n    if <touching (platforms v)?> then\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (5)) > (y position)> and <mouse down?>>> then\n            if <(sx) > [0]> then\n                set [sx v] to [-16]\n            else\n                set [sx v] to [16]\n            end\n            set [sy v] to [12]\n        end\n        Position\n    end\n    repeat until <not <touching (platforms v)?>>\n        change [x v] by ((([abs v] of (sx) ) / (sx)) * (-1))\n        Position\n    end\nend\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    change [y v] by ((([abs v] of (sy) ) / (sy)) * (-1))\n    if <(sy) < [0]> then\n        set [in air v] to [0]\n    end\n    Position\n    set [sy v] to [0]\nend\nif <touching (jump_through v)?> then\n    if <(sy) < [0]> then\n        change [y v] by ((sy) * (-1))\n        set [sy v] to [0]\n        set [in air v] to [0]\n        Position\n    end\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL X)) y: ((y) - (SCROLL Y))\n\ndefine  Test - Die\nif <<<touching (spinny v)?> or <touching (danger v)?>> or <touching (enemies v)?>> then\n    set [exit v] to [die]\n    Reset\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)\nwait (1) seconds\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> and <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<((mouse x) + (15)) > (x position)> and <mouse down?>>>> then\n        switch costume to (right up v)\n        if <(Check - 1 \( Complete \)) = [Yes]> then\n            switch costume to (right up2 v)\n        else\n            if <(Check - 2 \( Complete \)) = [Yes]> then\n                switch costume to (right up3 v)\n            else\n                if <(Check - 3 \( Complete \)) = [Yes]> then\n                    switch costume to (right up4 v)\n                else\n                    if <(Check - 4 \( Complete \)) = [Yes]> then\n                        switch costume to (right up5 v)\n                    end\n                end\n            end\n        end\n    else\n        if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> and <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<((mouse x) - (15)) < (x position)> and <mouse down?>>>> then\n            switch costume to (left up v)\n            if <(Check - 1 \( Complete \)) = [Yes]> then\n                switch costume to (left up2 v)\n            else\n                if <(Check - 2 \( Complete \)) = [Yes]> then\n                    switch costume to (left up3 v)\n                else\n                    if <(Check - 3 \( Complete \)) = [Yes]> then\n                        switch costume to (left up4 v)\n                    else\n                        if <(Check - 4 \( Complete \)) = [Yes]> then\n                            switch costume to (left up5 v)\n                        end\n                    end\n                end\n            end\n        else\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<((mouse y) - (20)) > (y position)> and <mouse down?>>> then\n                switch costume to (up v)\n                if <(Check - 1 \( Complete \)) = [Yes]> then\n                    switch costume to (up2 v)\n                else\n                    if <(Check - 2 \( Complete \)) = [Yes]> then\n                        switch costume to (up3 v)\n                    else\n                        if <(Check - 3 \( Complete \)) = [Yes]> then\n                            switch costume to (up4 v)\n                        else\n                            if <(Check - 4 \( Complete \)) = [Yes]> then\n                                switch costume to (up5 v)\n                            end\n                        end\n                    end\n                end\n            else\n                if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<((mouse x) + (15)) > (x position)> and <mouse down?>>> then\n                    switch costume to (right v)\n                    if <(Check - 1 \( Complete \)) = [Yes]> then\n                        switch costume to (right2 v)\n                    else\n                        if <(Check - 2 \( Complete \)) = [Yes]> then\n                            switch costume to (right3 v)\n                        else\n                            if <(Check - 3 \( Complete \)) = [Yes]> then\n                                switch costume to (right4 v)\n                            else\n                                if <(Check - 4 \( Complete \)) = [Yes]> then\n                                    switch costume to (right5 v)\n                                end\n                            end\n                        end\n                    end\n                else\n                    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<((mouse x) - (15)) < (x position)> and <mouse down?>>> then\n                        switch costume to (left v)\n                        if <(Check - 1 \( Complete \)) = [Yes]> then\n                            switch costume to (left2 v)\n                        else\n                            if <(Check - 2 \( Complete \)) = [Yes]> then\n                                switch costume to (left3 v)\n                            else\n                                if <(Check - 3 \( Complete \)) = [Yes]> then\n                                    switch costume to (left4 v)\n                                else\n                                    if <(Check - 4 \( Complete \)) = [Yes]> then\n                                        switch costume to (left5 v)\n                                    end\n                                end\n                            end\n                        end\n                    else\n                        switch costume to (middle v)\n                        if <(Check - 1 \( Complete \)) = [Yes]> then\n                            switch costume to (middle2 v)\n                        else\n                            if <(Check - 2 \( Complete \)) = [Yes]> then\n                                switch costume to (middle3 v)\n                            else\n                                if <(Check - 3 \( Complete \)) = [Yes]> then\n                                    switch costume to (middle4 v)\n                                else\n                                    if <(Check - 4 \( Complete \)) = [Yes]> then\n                                        switch costume to (middle5 v)\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [timeout v]\nhide\n\nwhen I receive [win v]\nhide\nset [ghost v] effect to (100)\n\nwhen I receive [play game v]\nshow\n\nwhen I receive [check - 1 \( failed \) v]\nshow\n\nwhen I receive [check - 2 \( failed \) v]\nshow\n\nwhen I receive [check - 3 \( failed \) v]\nshow\n\nwhen I receive [check - 4 \( failed \) v]\nshow\n\n@Opponents\n\ndefine Decode chat (#)\nif <(#) = [0]> then\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\ndefine setup players\nhide\nclear graphic effects\nset [ghost v] effect to (50)\nset [offline v] to [100]\nset [player # v] to [1]\npoint in direction (90)\nrepeat ((MAX PLAYERS) - (1))\n    create clone of (_myself_ v)\n    change [player # v] by (1)\nend\n\nwhen I receive [begin v]\nforever\n    if <(MY PLAYER #) = (player #)> then\n        set [offline v] to [100]\n    else\n        tick\n    end\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                            else\n                                if <(player #) = [9]> then\n                                    set [value v] to (☁ P9)\n                                else\n                                    if <(player #) = [10]> then\n                                        set [value v] to (☁ P10)\n                                    end\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\ndefine tick\nvalue = cloud # (player #)\nif <(join (value) [A]) = (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 (value) [A])\n    if <(offline) > [99]> then\n        show\n    end\n    set [offline v] to [0]\nend\nbegin decode of (value)\nvalue = read from encoded\nswitch costume to (value)\nvalue = read from encoded\nif <<<(y position) < [-160]> or <[160] < (y position)>> or <<(x position) < [-220]> or <[220] < (x position)>>> then\n    set rotation style [all around v]\n    go to [front v] layer\n    point towards (player v)\n    switch costume to (arrow v)\n    if on edge, bounce\n    think []\n    set [ghost v] effect to (0)\nelse\n    set rotation style [don't rotate v]\n    point in direction (90)\n    set [ghost v] effect to (10)\n    if <(names?) = [0]> then\n        think []\n    else\n        think (value)\n    end\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))\nvalue = read from encoded\nbroadcast (Decode chat v)\n\nwhen I receive [join game v]\nvalue = cloud # (player #)\nset [last value v] to (join (value) [A])\nwait (3) seconds\nvalue = cloud # (player #)\nif <(join (value) [A]) = (last value)> then\n    set [my player # v] to (player #)\nend\n\nwhen I receive [setup opponents v]\nsetup players\n\nwhen flag clicked\nset [names? v] to [1]\nforever\n    if <key (n v) pressed?> then\n        if <(names?) = [0]> then\n            set [names? v] to [1]\n        else\n            set [names? v] to [0]\n        end\n    end\nend\n\n@Connnect\n\nwhen flag clicked\nclear graphic effects\nswitch costume to (connecting v)\ngo to x: (170) y: (130)\nforever\n    wait (1) seconds\n    if <(CONNECT) = [Connected]> then\n        switch costume to (connected v)\n        play sound [Connect v] until done\n        wait (2) seconds\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        stop [this script v]\n    else\n        if <(CONNECT) = [Full]> then\n            switch costume to (full v)\n            play sound [Disconnect v] until done\n        else\n            switch costume to (connecting v)\n        end\n    end\nend\n\nwhen I receive [timeout v]\ngo to x: (0) y: (0)\nclear graphic effects\nswitch costume to (timeout v)\nshow\ngo to [front v] layer\nstop [all v]\n\n@Platforms\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [678] [403]\n\nClone at [678] [403]\n\nwhen I receive [tick v]\nset [ghost v] effect to (99)\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at [480] [0]\nClone at [480] [0]\n\nwhen I receive [play game v]\nshow\n\n@Platforms_Art\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [200] [530]\nClone at [200] [530]\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at [-1000] [0]\n\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\n\nwhen I receive [play game v]\nshow\n\n@Bouncy\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [555] [-102]\nset [x v] to [-99999]\n\nwhen I receive [tick v]\nposition ((x) - (SCROLL X)) ((y) - (SCROLL Y))\nif <touching (player v)?> then\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\nswitch costume to (bouncy2 v)\n\n@Spinny\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]\nswitch costume to (1 v)\nClone at [175] [-105]\nClone at [2261] [-107]\nset [x v] to [-99999]\n\ndefine Clone at (x) (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\n@Danger\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\n@Chat\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\nforever\n    set size to (0) %\n    wait until <(is the chat open) = [1]>\n    repeat (10)\n        set size to ((size) + (((100) - (size)) / (3))) %\n        change [ghost v] effect by (-10)\n    end\n    wait until <(is the chat open) = [0]>\n    repeat (10)\n        set size to ((size) + (((0) - (size)) / (3))) %\n        change [ghost v] effect by (10)\n    end\nend\n\ndefine GO\ngo to [front v] layer\ngo to [front v] layer\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\nforever\n    GO\nend\n\n@Ladder\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]\nswitch costume to (1 v)\nClone at [3000] [350]\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) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\n@Thumb\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    show\n    set [ghost v] effect to (100)\n    go to [front v] layer\nend\n\n@Coins\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\nif <(tick) > [0]> then\n    next costume\n    set [tick v] to [0]\nelse\n    change [tick v] by (1)\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 [green flag v]\nhide\npoint in direction (90)\nset [coins v] to [0]\nset [x v] to [0]\nset [tick v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [90] [-90]\nClone at [320] [-90]\nClone at [940] [315]\nClone at [550] [-53]\nClone at [550] [-13]\nClone at [550] [23]\nClone at [795] [-90]\nClone at [1640] [48]\nClone at [2315] [-18]\nClone at [2342] [30]\nClone at [2395] [84]\nClone at [2508] [95]\nClone at [2541] [170]\nClone at [3520] [440]\nClone at [3402] [441]\nset [x v] to [-99999]\n\ndefine Clone at (x) (y)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\n@Coin_counter\n\nwhen flag clicked\nset size to (110) %\nset [clone# v] to [1]\nrepeat (30)\n    create clone of (_myself_ v)\n    change [clone# v] by (1)\nend\nhide\n\nwhen I start as a clone\nshow\nforever\n    go to x: (((clone#) * (15)) - (-55)) y: (155)\n    if <(length of (COINS)) < (clone#)> then\n        hide\n    else\n        show\n        switch costume to (letter (clone#) of (COINS))\n    end\nend\n\n@Clouds\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    hide\n    create clone of (_myself_ v)\n    wait (pick random (1.5) to (3)) seconds\nend\n\nwhen I start as a clone\nshow\nswitch costume to (pick random (1) to (5))\nif <(pick random (1) to (2)) = [2]> then\n    set [d v] to [-250]\nelse\n    set [d v] to [250]\nend\ngo to x: (d) y: (pick random (-130) to (170))\nset [ghost v] effect to (pick random (40) to (70))\nif <(d) = [250]> then\n    repeat until <(x position) < [-267]>\n        change x by (pick random (-1) to (-3))\n        go to [back v] layer\n        go to [back v] layer\n        go [backward v] (999) layers\n    end\nelse\n    repeat until <(x position) > [267]>\n        change x by (pick random (1) to (3))\n        go to [back v] layer\n        go to [back v] layer\n        go [backward v] (999) layers\n    end\nend\ndelete this clone\n\nwhen I receive [setup v]\ndelete this clone\n\n@Jump_Through\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [480] [0]\nClone at [2175] [-37]\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at [2175] [-37]\n\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\ngo to [back v] layer\n\n@Text\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [200] [530]\nClone at [200] [1200]\n\nClone at [480] [0]\nClone at [480] [0]\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at [-1000] [0]\n\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\n\n@Win\n\nwhen I receive [green flag v]\nhide\ngo to x: (0) y: (0)\n\nwhen I receive [win v]\nshow\nswitch costume to (dot v)\nset size to (3600) %\nswitch costume to (costume1 v)\nrepeat until <(size) = [100]>\n    change size by (10)\nend\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( complete \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\n@Home\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (3 v)\nClone at [3550] [531]\n\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\nClone at [200] [530]\nClone at [200] [530]\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nClone at [-1000] [0]\n\nClone at [480] [0]\nClone at [480] [0]\nClone at [480] [0]\n\n@Report\n\n@Shop\n\nwhen I receive [play game v]\nshow\ngo to [front v] layer\nswitch costume to (costume2 v)\ngo to x: (35) y: (28)\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        switch costume to (costume1 v)\n        broadcast (Shop open v)\n    end\nend\n\nwhen I receive [shop close v]\nswitch costume to (costume2 v)\n\nwhen I receive [shop open - next page v]\nswitch costume to (costume3 v)\n\nwhen I receive [win v]\nhide\n\nwhen I receive [green flag v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nswitch costume to (costume2 v)\n\nwhen I receive [check - 2 \( failed \) v]\nswitch costume to (costume2 v)\n\nwhen I receive [check - 3 \( failed \) v]\nswitch costume to (costume2 v)\n\nwhen I receive [check - 4 \( failed \) v]\nswitch costume to (costume2 v)\n\n@Next ( Shop )\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (0) y: (-80)\nset size to (51) %\ngo to [front v] layer\nswitch costume to (arrow v)\nforever\n    if <<(costume [name v]) = [arrow]> and <<touching (mouse-pointer v)?> and <mouse down?>>> then\n        broadcast (Shop open - Next page v)\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\nwhen I receive [shop open - previous page v]\nswitch costume to (arrow v)\n\nif <<(costume [name v]) = [arrow2]> and <<touching (mouse-pointer v)?> and <mouse down?>>> then\n    broadcast (Shop open - Previous page v)\nend\n\nwhen I receive [shop open - next page v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\n@Close\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open v]\nshow\ngo to [front v] layer\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Shop close v)\n        hide\n    end\nend\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\n@1\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (-7) y: (13)\ngo to [front v] layer\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Check - 1 v)\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\nwhen I receive [shop open - next page v]\nhide\n\nwhen I receive [shop open - previous page v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\n@2\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open v]\nshow\ngo to x: (-7) y: (-45)\ngo to [front v] layer\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Check - 2 v)\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\nwhen I receive [shop open - next page v]\nhide\n\nwhen I receive [shop open - previous page v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\n@3\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open - next page v]\nshow\ngo to x: (37) y: (13)\ngo to [front v] layer\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Check - 3 v)\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\nwhen I receive [shop open - previous page v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\n@4\n\nwhen I receive [play game v]\nhide\n\nwhen I receive [shop open - next page v]\nshow\ngo to x: (37) y: (-45)\ngo to [front v] layer\nforever\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        broadcast (Check - 4 v)\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\nwhen I receive [shop open - previous page v]\nhide\n\nwhen I receive [check - 3 \( failed \) v]\nhide\n\nwhen I receive [check - 4 \( failed \) v]\nhide\n\nwhen I receive [check - 2 \( failed \) v]\nhide\n\nwhen I receive [check - 1 \( failed \) v]\nhide\n\n@Coin Information\n\nwhen I receive [check - 1 v]\nforever\n    if <<(COINS) = [2]> or <(COINS) > [2]>> then\n        broadcast (Check - 1 \( Complete \) v)\n        set [check - 1 \( complete \) v] to [Yes]\n    else\n        broadcast (Check - 1 \( Failed \) v)\n    end\nend\n\nwhen I receive [play game v]\nset [check - 1 \( complete \) v] to [No]\nset [check - 2 \( complete \) v] to [No]\nset [check - 3 \( complete \) v] to [No]\nset [check - 4 \( complete \) v] to [No]\n\nwhen I receive [check - 3 v]\nforever\n    if <<(COINS) = [7]> or <(COINS) > [7]>> then\n        broadcast (Check  - 3 \( Complete \) v)\n        broadcast (Shop open - Previous page v) and wait\n        set [check - 3 \( complete \) v] to [Yes]\n    else\n        broadcast (Check - 3 \( Failed \) v)\n    end\nend\n\nwhen I receive [check - 4 v]\nforever\n    if <<(COINS) = [12]> or <(COINS) > [12]>> then\n        broadcast (Check - 4 \( Complete \) v)\n        broadcast (Shop open - Previous page v) and wait\n        set [check - 4 \( complete \) v] to [Yes]\n    else\n        broadcast (Check - 4 \( Failed \) v)\n    end\nend\n\nwhen I receive [check - 2 v]\nforever\n    if <<(COINS) = [5]> or <(COINS) > [5]>> then\n        broadcast (Check - 2 \( Complete \) v)\n        set [check - 2 \( complete \) v] to [Yes]\n    else\n        broadcast (Check - 2 \( Failed \) v)\n    end\nend\n\n@Enemies\n\nwhen I receive [green flag v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nClone at [2150] [0]\nset [x v] to [-99999999]\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\ndefine Clone at (x) (y)\nchange [x v] by (x)\nchange [y v] by (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [play game v]\nforever\n    hide\nend\n\n
--Midnight Mission || A multiplayer scrolling platformer--\n\n57k+ views and 2.6k+ loves and 2.3k+ favs?!?!?!?!?!?!?!\nAaaah!!! Thank you all O_O\n\nHello and welcome to my first scrolling as well as multiplayer game! Finally after weeks of work it's finished! :D\n\nNO ADVERTISING!!!!\n\nControls:\n➡ <^>, WASD keys or tap to move\n➡ Don't touch spikes and saws\n➡ Don't fall off the cliffs!\n➡ T to open chat\n➡ Press 'Shop' to buy new skins\n➡ Get to the house to win!!\n➡ Invite your friends and play together!\n➡ Have fun!\nNOTE: If you try to buy something which costs more money than you have, your shop will stop! But after you get enough money, your costume will be automatically changed!\nLagging? Try this: https://turbowarp.org/484687911\n\nThis is my entry for @uvbeach's game jam!\n\nSTORY:\nYou and you friend were playing and enjoying yourselves. Suddenly a bad person came and kidnapped you friend! He told you only one thing:- "Ha! Come to Hilltop House to save him!"... Fortunately you knew where Hilltop House was. So you immediately rushed off to save your friend, not at all knowing the dangers of your journey!\n\nI really hope I win :)\n\nAlso I'd really appreciate if you like my hard work and give it at least a ❤️ and a ⭐. And if you absolutely love this then why not a follow??? Part 2 will now come soon!!\n------------------------------Credits------------------------------@uvbeach for the game jam!\n@TheCactusMaster for the engine ( heavily modified by me )\n@-Xaf- for the amazing music!\n@Stradfordjames for a little art!\n@Indian-Programmer and I discussed about the title! So a ton of credits to him! Also help him reach 1k please :)\n@-UltraProgrammer- ( me ) for the rest!\n\nOMG!!!\n@-AirAnimations- loved?!?!?!?!\n@uvbeach loved and faved?!?!\n@doodleshark loved, faved and commented?!?!\n@legendscroll loved, followed and commented?!?!?!?!\n@Bill-0 loved, faved, followed and commented?!?!?!\n@kevtheguy loved, faved and commented?!?!?!\n@Swift_Luck_ loved, faved and commented?!?!?!?!\n@Prime_Guy1001 loved?!?!\n@KilluaXlikesGon loved?!?!\n@MJM3 loved?!?!?!\n@crow_pro_ loved?!?!\nUpdates:\n• Shared project - Feb 7, 2021\n• 50+ loves and favs - Feb 8, 2021\n• Fixed a shop bug ( Thanks to @legendscroll for telling me that bug! ) - Feb 8, 2021\n• Added enemies - Feb 9, 2021\n• #23 trending in all - Feb 12, 2021\n• #8 trending in games - Feb 13, 2021\n• 20+ remixes - Feb 14, 2021\n• #19 in art - Feb 14, 2021\n• 500+ loves - Feb 15, 2021\n• 500+ favs - Feb 15, 2021\n• 10k+ views - Feb 15, 2021\n• 20k+ views - Feb 18, 2021\n• 1k+ loves - Feb 18, 2021\n• 50+ remixes - Feb 18, 2021\n• 2k loves - Feb 23, 2021\n• 2k favs - Mar 16, 2021\nTags:\n#All #Games #Art #-UltraProgrammer- #Entry