Kitchen - A Scrolling Platformer
@Stage\n\nwhen flag clicked\nswitch backdrop to (1 v)\nforever\n    wait (1.75) seconds\n    switch backdrop to (Level)\nend\n\nwhen flag clicked\nforever\n    play sound (pick random (1) to (3)) until done\nend\n\n@Blank\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?) = [1]> then\n        say (join (player #) (join [:] (value)))\n    else\n        if <(names?) = [0]> then\n            say []\n        end\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\nif <(names?) = [0]> then\nelse\n    think []\nend\n\nthink []\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?) = [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 flag clicked\ndelete this clone\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        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\nwhen I receive [timeout v]\nplay sound [Disconnect v] until done\n\nwhen flag clicked\ndelete this clone\n\n@Platforms\n\nwhen I receive [setup v]\nset [x v] to [0]\nset [y v] to [0]\nif <(Level) = [1]> then\n    switch costume to (1-1 v)\n    Clone at [480] [0]\n    Clone at [480] [0]\n    Clone at [480] [0]\nelse\n    if <(Level) = [2]> then\n        switch costume to (2-1 v)\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n    else\n        if <(Level) = [3]> then\n            switch costume to (3-1 v)\n            Clone at [480] [0]\n            Clone at [480] [0]\n            Clone at [480] [0]\n        else\n            if <(Level) = [4]> then\n                switch costume to (4-1 v)\n                Clone at [480] [0]\n                Clone at [480] [0]\n                Clone at [480] [0]\n            end\n        end\n    end\nend\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\nwhen I receive [win v]\nhide\nstop [other scripts in sprite v]\n\nwhen I receive [setup v]\ndelete this clone\n\nwhen flag clicked\ndelete this clone\n\n@Danger\n\nwhen I receive [setup v]\nhide\nset [x v] to [0]\nset [y v] to [0]\nswitch costume to (1 v)\nif <(Level) = [1]> then\n    switch costume to (1 v)\n    Clone at [480] [0]\n    Clone at [480] [0]\n    Clone at [480] [0]\n    Clone at [480] [0]\nelse\n    if <(Level) = [2]> then\n        switch costume to (5 v)\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n    else\n        if <(Level) = [3]> then\n            switch costume to (9 v)\n            Clone at [480] [0]\n            Clone at [480] [0]\n            Clone at [480] [0]\n        else\n            if <(Level) = [4]> then\n                switch costume to (13 v)\n                Clone at [480] [0]\n                Clone at [480] [0]\n                Clone at [480] [0]\n            end\n        end\n    end\nend\n\nClone at [480] [0]\nClone at [480] [0]\n\nwhen I receive [tick v]\nposition ((X) - (SCROLL X)) ((Y) - (SCROLL Y))\ngo [backward v] (5) layers\n\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [x v] by (x)\nchange [y v] by (y)\nnext costume\n\nwhen I receive [win v]\nhide\n\nwhen I receive [setup v]\ndelete this clone\n\nwhen flag clicked\ndelete this clone\n\ngo to x: (240) y: (0)\n\n@Spinning wheel of death\n\nwhen I receive [tick v]\nposition ((xxxx) - (SCROLL X)) ((yyyyy) - (SCROLL Y))\nturn right (10) degrees\nturn left (5) 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 [xxxx v] to [0]\nset [yyyyy v] to [0]\nswitch costume to (1 v)\nif <(Level) = [1]> then\n    Clone at [908] [-90]\n    set [xxxx v] to [-99999]\nelse\n    if <(Level) = [2]> then\n        Clone at [480] [0]\n        Clone at [908] [-90]\n        set [xxxx v] to [-99999]\n    else\n        if <(Level) = [3]> then\n            Clone at [29] [-10]\n            set [xxxx v] to [-99999]\n        else\n            if <(Level) = [4]> then\n                Clone at [108] [-99]\n                set [xxxx v] to [-99999]\n            end\n        end\n    end\nend\n\nClone at [480] [0]\n\nif <(Level) = [1]> then\n\ndefine Clone at (x) (y)\nset [xxxx v] to (x)\nset [yyyyy v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [win v]\nhide\n\nwhen flag clicked\ndelete this clone\n\n@shop\n\nwhen flag clicked\ngo to [front v] layer\ngo to [front v] layer\n\nwhen I receive [win v]\nhide\n\nwhen flag clicked\nswitch costume to (shop v)\nset [shop v] to []\nset [the shop is open v] to [0]\n\nwhen flag clicked\ndelete this clone\n\nwhen I receive [tick v]\nif <(the shop is open) = [1]> then\n    show\nelse\n    hide\nend\nif <key (space v) pressed?> then\n    set [the shop is open v] to [0]\n    broadcast (Shop Close v)\n    hide\n    wait until <not <key (space v) pressed?>>\nend\n\nwhen I receive [shop open v]\nrepeat until <(size) = [100]>\n    change size by (((110) - (size)) / (3))\nend\nwait (1) seconds\n\nwhen I receive [shop close v]\nset [the shop is open v] to [0]\n\n@Coins\n\nwhen I start as a clone\nforever\n    set size to (100) %\n    change size by ((([sin v] of (((timer) + ((y) - (-400))) * (900)) ) * (10)) - (() * (1000)))\nend\n\nwhen I receive [tick v]\nposition ((coin x) - (SCROLL X)) ((coin y) - (SCROLL Y))\nif <touching (player v)?> then\n    broadcast (coin v)\n    change [coins v] by (1)\n    hide\n    set [coin x v] to [-99999999999]\n    delete this clone\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\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nset [coin x v] to (x)\nset [coin y v] to (y)\n\nwhen I receive [win v]\nhide\n\nwhen I receive [coin v]\nplay sound [Coin v] until done\n\nwhen I receive [setup v]\ndelete this clone\n\nwhen flag clicked\nset [coins v] to [0]\ndelete this clone\n\nwhen I receive [setup v]\nhide\nif <(Level) = [1]> then\n    set [coin x v] to [-99999]\n    Clone at [0] [0]\n    Clone at [-100] [0]\n    Clone at [108] [-80]\n    Clone at [-70] [0]\n    Clone at [445] [-70]\n    Clone at [420] [-70]\n    Clone at [485] [69]\n    Clone at [570] [-80]\n    Clone at [850] [-80]\n    Clone at [1189] [120]\n    Clone at [1444] [20]\n    set [coin x v] to [-9999999999999]\nelse\n    if <(Level) = [2]> then\n        set [coin x v] to [-99999]\n        Clone at [0] [0]\n        Clone at [0] [30]\n        Clone at [400] [45]\n        Clone at [669] [-40]\n        Clone at [669] [-10]\n        Clone at [971] [110]\n        Clone at [971] [80]\n        Clone at [1220] [200]\n        set [coin x v] to [-99999]\n    else\n        if <(Level) = [3]> then\n            set [coin x v] to [-99999]\n            Clone at [0] [50]\n            Clone at [0] [15]\n            Clone at [108] [40]\n            Clone at [224] [100]\n            Clone at [336] [170]\n            Clone at [570] [-80]\n            Clone at [850] [-80]\n            Clone at [1444] [20]\n            set [coin x v] to [-99999]\n        else\n            if <(Level) = [4]> then\n                set [coin x v] to [-99999]\n                Clone at [0] [50]\n                Clone at [30] [50]\n                Clone at [424] [10]\n                Clone at [650] [-80]\n                Clone at [650] [-50]\n                Clone at [791] [-80]\n                Clone at [791] [-50]\n                Clone at [1096] [120]\n                Clone at [1125] [120]\n                set [coin x v] to [-99999]\n            end\n        end\n    end\nend\n\nClone at [1189] [150]\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\nwhen I receive [win v]\nhide\n\nwhen flag clicked\ndelete this clone\n\n@Player\n\nwhen flag clicked\nset [jumpboost? v] to [0]\nswitch costume to (blue v)\nforever\n    if < (shop) contains [Green]?> then\n        switch costume to (green v)\n    end\n    if < (shop) contains [Yellow]?> then\n        switch costume to (yellow v)\n    end\n    if < (shop) contains [1]?> then\n        switch costume to (1 v)\n    end\n    if < (shop) contains [2]?> then\n        switch costume to (2 v)\n    end\n    if < (shop) contains [3]?> then\n        switch costume to (3 v)\n    end\nend\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 [Hard!] 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?> 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                                        set [chat v] to [0]\n                                    end\n                                end\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 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 (Player: x) to encoded\nwrite (Player: 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\nset [player: x v] to [-100]\nset [player: y v] to [-60]\nset [scroll y v] to (Player: y)\nset [scroll x v] to (Player: x)\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 rotation style [left-right v]\nshow\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    if <(SpeedBoost?) = [1]> then\n        change [sx v] by ((1.7) * (<<<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.85))\n    else\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.75))\n    end\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            if <(JumpBoost?) = [1]> then\n                set [sy v] to [20]\n            else\n                set [sy v] to [14]\n            end\n        end\n    end\nend\nif <touching (trampoline v)?> then\n    set [sy v] to [23]\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 [player: 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 [player: 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\nchange [scroll x v] by (round (((Player: x) - (SCROLL X)) / (5)))\nif <(SCROLL X) < [0]> then\n    set [scroll x v] to [0]\nend\nPosition\nchange [scroll y v] by (round (((Player: y) - (SCROLL Y)) / (10)))\nif <(SCROLL Y) < [0]> then\n    set [scroll y v] to [0]\nend\nPosition\nif <(Player: 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\n\ndefine Change Player x by (sx)\nchange [player: x v] by (sx)\nPosition\nif <touching (platforms v)?> then\n    repeat (8)\n        change [player: y v] by (1)\n        Position\n        if <not <touching (platforms v)?>> then\n            stop [this script v]\n        end\n    end\n    change [player: 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 [player: x v] by ((([abs v] of (sx) ) / (sx)) * (-1))\n        Position\n    end\nend\n\ndefine Change player y by (sy)\nchange [player: y v] by (sy)\nchange [in air v] by (1)\nPosition\nrepeat until <not <touching (platforms v)?>>\n    change [player: 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 [player: 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: ((Player: x) - (SCROLL X)) y: ((Player: y) - (SCROLL Y))\n\ndefine  Test - Die\nif <<<touching (spinning wheel of death v)?> or <touching (danger v)?>> or <touching (danger2 v)?>> then\n    broadcast (die v)\n    set [exit v] to [die]\n    Reset\nend\n\ndefine Game - Win\nrepeat (50)\n    point towards (portal v)\n    turn right (65) degrees\n    move ((distance to [portal 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)\nset size to (100) %\n\n\n\n\n\nwhen I receive [timeout v]\nhide\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\nset [scroll x v] to (Player: x)\n\nwhen I receive [die v]\nplay sound [Crunch v] until done\n\nwhen flag clicked\nswitch costume to (blue v)\nset size to (100) %\nset [level v] to [1]\nset [jumpboost? v] to [0]\nset [speedboost? v] to [0]\n\nwhen flag clicked\ndelete this clone\n\nwhen I receive [win v]\nforever\n    hide\nend\n\nset [coins v] to [100]\n\nset [coins v] to [100]\n\nset [coins v] to [0]\n\nset [coins v] to [0]\n\nif <(sy) > [-2]> then\n    if <(JumpBoost?) = [1]> then\n        set [sy v] to [20]\n    else\n        set [sy v] to [14]\n    end\nend\n\nif <(SpeedBoost?) = [1]> then\n    change [sx v] by ((1.7) * (<<<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.85))\nelse\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.75))\nend\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\nforever\n    show\n    set [ghost v] effect to (100)\n    go to [front v] layer\nend\n\n@Danger2\n\nhide\n\nwhen I receive [tick v]\nposition ((lava x) - (SCROLL X)) ((lava y) - (SCROLL Y))\ngo [backward v] (5) layers\n\ngo to [back v] layer\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x position) = (x)> and <(y position) = (y)>> then\n    show\nelse\n    hide\nend\n\ndefine Clone at (x) (y)\ncreate clone of (_myself_ v)\nchange [lava x v] by (x)\nchange [lava y v] by (y)\nnext costume\n\nwhen I receive [win v]\nhide\n\nwhen flag clicked\n\nwhen I receive [setup v]\nswitch costume to (1 v)\nset [lava x v] to [0]\nset [lava y v] to [0]\nhide\nif <(Level) = [1]> then\n    switch costume to (1 v)\n    Clone at [480] [0]\n    Clone at [480] [0]\n    Clone at [480] [0]\nelse\n    if <(Level) = [2]> then\n        switch costume to (5 v)\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n    else\n        if <(Level) = [2]> then\n            switch costume to (8 v)\n            Clone at [480] [0]\n        else\n            if <(Level) = [3]> then\n                switch costume to (10 v)\n                Clone at [480] [0]\n                Clone at [480] [0]\n            else\n                if <(Level) = [4]> then\n                    switch costume to (13 v)\n                    Clone at [480] [0]\n                    Clone at [480] [0]\n                end\n            end\n        end\n    end\nend\n\nif <(LEVEL) = [2]> then\n\nwhen flag clicked\nforever\n    set [lava y v] to ((([sin v] of (((timer) + ()) * (300)) ) * (8)) - (() * (10)))\nend\n\nswitch costume to (1 v)\n\nClone at [480] [0]\n\nwhen I receive [setup v]\ndelete this clone\n\nwhen flag clicked\ndelete this clone\n\n@portal\n\nwhen I receive [tick v]\nposition ((portal: x) - (SCROLL X)) ((portal: y) - (SCROLL Y))\nset [max collected v] to (COINS)\nif <(COINS) = (MAX COLLECTED)> then\n    switch costume to (open v)\nelse\n    switch costume to (closed v)\nend\nif <<<(costume [number v]) = [1]> and <touching (player v)?>> and <not <(Level) = [4]>>> then\n    broadcast (nl v)\n    set [exit v] to [win]\nend\nif <<<(costume [number v]) = [1]> and <touching (player v)?>> and <(Level) = [4]>> then\n    broadcast (win v)\nend\n\ndefine position (x) (y)\ngo to x: (x) y: (y)\nif <<(x) = (x position)> and <(y) = (y position)>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [green flag v]\nhide\ngo to [back v] layer\n\nwhen I receive [reset v]\ndelete this clone\n\nwhen I receive [setup v]\nset [portal: x v] to [0]\nset [portal: y v] to [0]\nwait (0) seconds\nif <(Level) = [1]> then\n    Clone at x: [1590] y: [150]\nelse\n    if <(Level) = [2]> then\n        Clone at x: [1337] y: [260]\n    else\n        if <(Level) = [3]> then\n            Clone at x: [1677] y: [45]\n        else\n            if <(Level) = [4]> then\n                Clone at x: [1525] y: [0]\n            else\n                set [portal: x v] to [-99999999999999]\n            end\n        end\n    end\nend\n\ndefine Clone at x: (x) y: (y)\nhide\nchange [portal: x v] by (x)\nchange [portal: y v] by (y)\n\nwhen I receive [setup v]\ndelete this clone\n\n@Decor\n\nwhen I receive [setup v]\nset [decor: y v] to [0]\nset [decor: x v] to [0]\nset [level v] to [1]\n\nwhen I receive [tick v]\nposition ((Decor: x) - (SCROLL X)) ((Decor: y) - (SCROLL Y))\ngo\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 [decor: x v] by (x)\nchange [decor: y v] by (y)\nnext costume\n\nwhen I receive [win v]\nhide\nstop [other scripts in sprite v]\n\ndefine go\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\n\nwhen I receive [setup v]\ndelete this clone\n\nwhen flag clicked\ndelete this clone\n\nwhen I receive [setup v]\nif <(Level) = [1]> then\n    switch costume to (5 v)\n    Clone at [480] [0]\n    Clone at [480] [0]\n    Clone at [480] [0]\nelse\n    if <(Level) = [2]> then\n        switch costume to (2 v)\n        Clone at [480] [0]\n        Clone at [480] [0]\n        Clone at [480] [0]\n    else\n        if <(Level) = [3]> then\n            switch costume to (3 v)\n            Clone at [480] [0]\n            Clone at [480] [0]\n            Clone at [480] [0]\n        else\n            if <(Level) = [4]> then\n                switch costume to (4 v)\n                Clone at [480] [0]\n                Clone at [480] [0]\n                Clone at [480] [0]\n            end\n        end\n    end\nend\n\n@Win\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [win v]\nshow\n\n@Chat Button\n\nwhen I receive [tick v]\nif <touching (mouse-pointer v)?> then\n    repeat until <(size) > [119]>\n        change [size v] by (.9)\n        change size by (size)\n    end\n    if <mouse down?> then\n        set [is the chat open v] to [1]\n        wait until <not <mouse down?>>\n    end\nelse\n    repeat until <(size) < [101]>\n        set [size v] to [-.8]\n        change [size v] by (-.9)\n        change size by (size)\n    end\nend\n\nwhen I receive [chat open v]\nshow\nset size to (100) %\n\nwhen I receive [begin v]\nset [size v] to [.8]\nshow\nrepeat (40)\n    change [ghost v] effect by (-3)\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo to [front v] layer\n\nchange [ghost v] effect by (100)\n\nwhen flag clicked\ngo to x: (-131) y: (145)\nset size to (100) %\n\nwhen I receive [win v]\nhide\n\ngo to [front v] layer\ngo to [front v] layer\n\nwhen I receive [chat close v]\nshow\n\nwhen flag clicked\n\nforever\n    reset timer\n    if <(timer) > [.00000000000001]> then\n        hide\n    end\nend\n\n@Shop Button\n\nhide\n\nwhen I receive [shop open v]\nshow\nset size to (100) %\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo to [front v] layer\n\nforever\n    go to [front v] layer\nend\n\ngo to [front v] layer\n\nchange [ghost v] effect by (100)\n\nwhen flag clicked\nshow\ngo to x: (-199) y: (145)\n\nwhen I receive [win v]\nhide\n\nwhen I receive [shop close v]\nshow\n\nwhen I receive [begin v]\nset [size v] to [.8]\nshow\nrepeat (40)\n    change [ghost v] effect by (-3)\nend\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        repeat until <(size) > [119]>\n            change [size v] by (0.5)\n            change size by (size)\n        end\n        if <mouse down?> then\n            set [the shop is open v] to [1]\n            wait until <not <mouse down?>>\n        end\n    else\n        repeat until <(size) < [101]>\n            set [size v] to [-.8]\n            change [size v] by (-.9)\n            change size by (size)\n        end\n    end\nend\n\n@Chat\n\nwhen I receive [tick v]\ngo to [front v] layer\nif <(is the chat open) = [1]> then\n    show\nelse\n    hide\nend\nif <key (space v) pressed?> then\n    set [is the chat open v] to [0]\n    broadcast (Chat Close v)\n    hide\n    wait until <not <key (space v) pressed?>>\nend\n\nwhen I receive [green flag v]\nhide\n\nwhen flag clicked\nhide\n\nwhen I receive [chat open v]\nrepeat until <(size) = [100]>\n    change size by (((110) - (size)) / (3))\nend\nwait (1) seconds\n\nwhen I receive [chat open v]\n\nwhen I receive [chat close v]\nset [is the chat open v] to [0]\n\n@Shop Item1\n\nwhen flag clicked\ndelete all of [skins v]\nhide\nforever\n    go to x: (-132) y: (-17)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n    else\n        clear graphic effects\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <<(COINS) > [4]> and <not <([costume # v] of [player v]) = [2]>>> then\n            play sound [Register v] until done\n            set [shop v] to (join (shop) [Green])\n            change [coins v] by (-5)\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\nif <[] > [4]> then\n\n@Shop Item 2\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (-132) y: (-90)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n    else\n        clear graphic effects\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <<(COINS) > [4]> and <not <([costume # v] of [player v]) = [3]>>> then\n            play sound [Register v] until done\n            set [shop v] to (join (shop) [Yellow])\n            change [coins v] by (-5)\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Item3\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (-50) y: (-90)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n    else\n        clear graphic effects\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <<(COINS) > [9]> and <not <([costume # v] of [player v]) = [4]>>> then\n            play sound [Register v] until done\n            set [shop v] to (join (shop) [1])\n            change [coins v] by (-10)\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Item4\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (-50) y: (-17)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n    else\n        clear graphic effects\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <<(COINS) > [9]> and <not <([costume # v] of [player v]) = [5]>>> then\n            play sound [Register v] until done\n            set [shop v] to (join (shop) [2])\n            change [coins v] by (-10)\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Item 5\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (35) y: (-17)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n    else\n        clear graphic effects\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        if <<(COINS) > [14]> and <not <([costume # v] of [player v]) = [6]>>> then\n            play sound [Register v] until done\n            set [shop v] to (join (shop) [3])\n            change [coins v] by (-15)\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Item6\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (118) y: (-17)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [touching? v] to [1]\n        set [brightness v] effect to (30)\n    else\n        set [touching? v] to [0]\n        clear graphic effects\n    end\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> and <not <(JumpBoost?) = [1]>>> then\n        if <(COINS) > [19]> then\n            play sound [Register v] until done\n            change [coins v] by (-20)\n            set [jumpboost? v] to [1]\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Item2\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to x: (118) y: (-90)\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    if <(the shop is open) = [1]> then\n        show\n    end\n    if <(the shop is open) = [0]> then\n        hide\n    end\n    if <touching (mouse-pointer v)?> then\n        set [touching? v] to [1]\n        set [brightness v] effect to (30)\n    else\n        set [touching? v] to [0]\n        clear graphic effects\n    end\n    if <<<touching (mouse-pointer v)?> and <mouse down?>> and <not <(SpeedBoost?) = [1]>>> then\n        if <(COINS) > [19]> then\n            play sound [Register v] until done\n            change [coins v] by (-20)\n            set [speedboost? v] to [1]\n            wait until <not <<touching (mouse-pointer v)?> and <mouse down?>>>\n        end\n    end\nend\n\n@Shop Info1\n\nwhen flag clicked\ngo to [front v] layer\nhide\nforever\n    if <(the shop is open) = [1]> then\n        if <(Touching?) = [1]> then\n            go to (mouse-pointer v)\n            set [ghost v] effect to (30)\n            go to [front v] layer\n            show\n        else\n            hide\n        end\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\n@Shop Info2\n\nwhen flag clicked\ngo to [front v] layer\nhide\nforever\n    if <(the shop is open) = [1]> then\n        if <(touching?) = [1]> then\n            go to (mouse-pointer v)\n            set [ghost v] effect to (30)\n            go to [front v] layer\n            show\n        else\n            hide\n        end\n    end\nend\n\nwhen I receive [shop close v]\nhide\n\n@Coin Effect\n\nwhen I receive [coin v]\ngo to x: (0) y: (0)\ngo to (player v)\nset size to (70) %\nset [ghost v] effect to (0)\nshow\nrepeat (15)\n    change x by (-4)\n    change y by (4)\n    change [ghost v] effect by (2)\nend\nhide\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [win v]\nhide\n\n@Detector\n\nwhen flag clicked\nhide\nset [faved___ v] to [0]\nset [loved__ v] to [0]\nset [clone id v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\nwait (1) seconds\nbroadcast (FREE REWARDS v)\n\ngo to x: (0) y: (0)\nshow\nreset timer\nswitch costume to (pick random (1) to (4))\nset [ghost v] effect to (100)\nrepeat until <(timer) > [3.5]>\n    change y by ((y position) / (-15))\n    change [ghost v] effect by (-3)\nend\nreset timer\nrepeat until <(timer) > [3.5]>\n    change y by (((y position) - (-100)) / (-15))\n    change [ghost v] effect by (10)\nend\n\nwhen I start as a clone\nif <(clone id) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved__ v] to [0]\n    switch costume to (love v)\n    forever\n        set [love? v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [loved__ v] to [1]\n        end\n    end\nend\nif <(clone id) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (fave v)\n    set [faved___ v] to [0]\n    forever\n        set [fav v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [faved___ v] to [1]\n        end\n    end\nend\n\nset [faved___ v] to [1]\nset [loved__ v] to [1]\n\nwhen flag clicked\ndelete this clone\n\n@+10 coins for love and fav\n\nwhen flag clicked\nset [faved___ v] to [0]\nset [loved__ v] to [0]\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    wait (0.01) seconds\n    change [ghost v] effect by (10)\nend\nwait (2) seconds\nrepeat (10)\n    wait (0.01) seconds\n    change [ghost v] effect by (-10)\nend\nwait (3) seconds\nhide\n\nwhen flag clicked\nif <<(LOVED__) = [1]> and <(FAVED___) = [1]>> then\n    change [coins v] by (10)\n    hide\n    stop [other scripts in sprite v]\nend\n\nwhen I receive [free rewards v]\nchange [coins v] by (10)\n\nwhen I receive [free rewards v]\nhide\nstop [other scripts in sprite v]\n\nwhen flag clicked\ndelete this clone\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\n    go to [front v] layer\nend\n\n@Sprite1\n\nwhen flag clicked\nshow\ngo to x: (36) y: (28)\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\ngo to [back v] layer\n\n
WARNING; IF YOU RAGE EASILY DON'T PLAY\n\nPlease read the controls below before commenting suggestions, that would be really appreciated :D\n\nPress 't' to toggle text\n-----------------------------------------------\nWhen the void opened, the world fell into chaos. Spikes grew out of the ground and demons roamed the night. \nThe only hope to restore order is to close the void, but can you get past the demons and spikes? Not to mention the one who began this chaos in the first place; the Void Summoner.\n----------------------------------------------------------\nWelp, that was a long intro, I hope you didn't get too bored reading it (it was very cheesy)\n\nThe instructions are in-game, but I'm going to summaries them here anyway;\n\n- Arrow Keys/WAD; Move\n- Spacebar; Attack\n- Number pad to switch weapons\n     - 1; Sword\n     - 2; Bow and Arrow\n     - 0; Hands\nUsing the bow;\n     - Space to nock the arrow\n     - Arrow keys to direct\n     - Release space to fire\nOpen Chest; Down Arrow Key/'S'\n\nEnemies;\n- Chaos Spawns; normal demons\n- Winged demons; Flying demons\n- Armed Demons; Invulnerable to arrows\n- Void Summoner;\n     - High HP\n     - Shoot fireballs\n     - 33.3% invulnerable to arrows\n\nOther notes;\n- Small fireballs could be deflected by the sword\n- 'm' key o Mute\n- Skip Level; 'p' key\n- Restart Level; 'r' key\n- Toggle text; 't' key\n\nAny other questions could be asked in the comments or answered in the game itself