Spring A Platformer
@Stage\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next backdrop\nend\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\n@Player\n\nwhen I receive [message1 v]\ngo to x: (-173) y: (-129)\nchange [level v] by (.05)\n\nwhen I start as a clone\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen flag clicked\ngo to [back v] layer\ngo to x: (-167) y: (-129)\n\nwhen flag clicked\nforever\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [x v] by (0.75)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [x v] by (-0.75)\n    end\nend\n\nwhen flag clicked\nset [level v] to [1]\npoint in direction (90)\nforever\n    change [y v] by (-0.5)\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (ground v)?> then\n        change y by (1)\n        if <touching (ground v)?> then\n            change y by (1)\n        end\n        if <touching (ground v)?> then\n            change y by (1)\n            if <touching (ground v)?> then\n                change y by (1)\n                if <touching (ground v)?> then\n                    change y by (1)\n                end\n                if <touching (ground v)?> then\n                    change y by (1)\n                    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n                        set [y v] to [10]\n                        if <(x) > [0]> then\n                            set [x v] to [-10]\n                        else\n                            set [x v] to [10]\n                        end\n                    else\n                        change x by ((x) * (-1))\n                        set [x v] to [0]\n                    end\n                end\n            end\n        end\n    end\n    change y by (y)\n    if <touching (ground v)?> then\n        change y by ((y) * (-1))\n        set [y v] to [0]\n    end\n    change y by (-0.5)\n    if <<touching (ground v)?> and <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> then\n        set [y v] to [10]\n    end\n    change y by (0.5)\n    if <(x position) > [250]> then\n        go to x: (-173) y: (-129)\n        broadcast (message1 v)\n    end\n    if <(y position) < [-175]> then\n        go to x: (-204) y: (-140)\n    end\n    if <touching (kah-nee-fay v)?> then\n        go to x: (-210) y: (-36)\n    end\n    switch costume to (costume1 v)\nend\n\nwhen flag clicked\nforever\n    clear graphic effects\nend\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        go to x: (-173) y: (-122)\n    end\n    if <(level) = [6]> then\n        broadcast (Tower R v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (bounce pad v)?> then\n        change [y v] by (5)\n        change [y v] by (5)\n        change [y v] by (5)\n        change [y v] by (5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (stronger bouncepad v)?> then\n        change [y v] by (5)\n        change [y v] by (5)\n        change [y v] by (5)\n        change [y v] by (5)\n    end\nend\n\nwhen I receive [message 2 v]\ngo to x: (255) y: (126)\n\nwhen flag clicked\nforever\n    play sound [Backround2 - Kevin MacLeod Wallpaper v] until done\n    play sound [Backround6 - Kevin MacLeod Off to Osaka v] until done\nend\n\nwait (5) seconds\n\n@Spikes\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\nwhen flag clicked\nshow\ngo to [back v] layer\nswitch costume to (costume1 v)\n\n@Ground\n\nwhen flag clicked\nshow\nswitch costume to (costume1 v)\ngo [forward v] (99) layers\n\nwhen I receive [message1 v]\nif <(level) = [100]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\nwhen flag clicked\nforever\n    if <(costume [number v]) = [11]> then\n        wait (5) seconds\n        broadcast (Message 2 v)\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nclear graphic effects\nshow\ngo [forward v] (9999999999999999999999999999) layers\nforever\n    wait (.5) seconds\n    change [ghost v] effect by (25)\nend\n\n@Updates Thumbnail\n\n@Light\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\nwhen flag clicked\nswitch costume to (costume2 v)\n\nwhen flag clicked\nforever\n    go to (player v)\n    go to [back v] layer\nend\n\n@Bounce Pad\n\nwhen flag clicked\nshow\ngo to [back v] layer\nswitch costume to (costume2 v)\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\n@Text\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\nwhen flag clicked\nshow\ngo to [back v] layer\nswitch costume to (costume1 v)\n\nwhen flag clicked\nforever\n    show\n    go to [front v] layer\nend\n\nwhen flag clicked\nforever\n    show\n    go to [front v] layer\nend\n\n@Stronger Bouncepad\n\nwhen flag clicked\nshow\ngo to [back v] layer\nswitch costume to (costume1 v)\n\nwhen I receive [message1 v]\nif <(level) = [14]> then\n    switch costume to (costume11 v)\n    stop [this script v]\nelse\n    next costume\nend\n\n@Sprite1\n\nwhen this sprite clicked\nhide\nbroadcast (Message 2 v)\n\nwhen flag clicked\nshow\n\nwhen flag clicked\nset size to (50) %\ngo [backward v] (999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999) layers\n\n@Encoder & decoder\n\ndefine Encode (data)\nset [encoded v] to []\nset [letter # v] to [1]\nrepeat (length of (data))\n    switch costume to (letter (letter #) of (data))\n    set [encoded v] to (join (encoded) (costume [number v]))\n    change [letter # v] by (1)\nend\nset [encoded v] to (join (encoded) [00])\n\ndefine Decode (data)\nset [decoded v] to []\nset [letter # v] to [1]\nrepeat (((length of (data)) / (2)) - (1))\n    switch costume to (join (letter (letter #) of (data)) (letter ((letter #) + (1)) of (data)))\n    set [decoded v] to (join (decoded) (costume [name v]))\n    change [letter # v] by (2)\nend\n\nEncode (username)\nDecode (encoded)\nsay (decoded)\n\nwhen [space v] key pressed\nask [What do you want to chat?] and wait\nEncode (join (username) (join [:] (answer)))\nset [☁ cloud process v] to (encoded)\n\nwhen flag clicked\nDecode (☁ cloud process)\nset [latest chat v] to (decoded)\nset [middle v] to (☁ cloud process)\n\nwhen flag clicked\nforever\n    if <not <(☁ cloud process) = (middle)>> then\n        Decode (☁ cloud process)\n        set [middle v] to (☁ cloud process)\n        set [latest chat v] to (decoded)\n        insert (join (join (current [hour v]) (join [:] (join (current [minute v]) [ ]))) (decoded)) at (1) of [last 30 chats v] \n    end\n    if <(length of [last 30 chats v]) > [30]> then\n        delete (31) of [last 30 chats v]\n    end\nend\n\nwhen I receive [message1 v]\nask [What do you want to chat?] and wait\nif <<not <(letter (1) of (answer)) = [ ]>> and <not <(answer) = []>>> then\n    Encode (join (username) (join [:] (answer)))\n    set [☁ cloud process v] to (encoded)\nend\n\nwhen flag clicked\nset [repeat chat v] to [1]\nforever\n    set [re v] to (item (repeat chat) of [last 30 chats v])\n    change [repeat chat v] by (1)\n    if <(item (repeat chat) of [last 30 chats v]) = (re)> then\n        delete (repeat chat) of [last 30 chats v]\n    end\n    if <(repeat chat) = [31]> then\n        set [repeat chat v] to [1]\n    end\nend\n\nsay []\n\n@Sprite2\n\n@Encoder & decoder2\n\ndefine Encode (data)\nset [encoded v] to []\nset [letter # v] to [1]\nrepeat (length of (data))\n    switch costume to (letter (letter #) of (data))\n    set [encoded v] to (join (encoded) (costume [number v]))\n    change [letter # v] by (1)\nend\nset [encoded v] to (join (encoded) [00])\n\ndefine Decode (data)\nset [decoded v] to []\nset [letter # v] to [1]\nrepeat (((length of (data)) / (2)) - (1))\n    switch costume to (join (letter (letter #) of (data)) (letter ((letter #) + (1)) of (data)))\n    set [decoded v] to (join (decoded) (costume [name v]))\n    change [letter # v] by (2)\nend\n\nEncode (username)\nDecode (encoded)\nsay (decoded)\n\nwhen [space v] key pressed\nask [What do you want to chat?] and wait\nEncode (join (username) (join [:] (answer)))\nset [☁ cloud process v] to (encoded)\n\nwhen flag clicked\nDecode (☁ cloud process)\nset [latest chat v] to (decoded)\nset [middle v] to (☁ cloud process)\n\nwhen flag clicked\nforever\n    if <not <(☁ cloud process) = (middle)>> then\n        Decode (☁ cloud process)\n        set [middle v] to (☁ cloud process)\n        set [latest chat v] to (decoded)\n        insert (join (join (current [hour v]) (join [:] (join (current [minute v]) [ ]))) (decoded)) at (1) of [last 30 chats v] \n    end\n    if <(length of [last 30 chats v]) > [30]> then\n        delete (31) of [last 30 chats v]\n    end\nend\n\nwhen I receive [chat v]\nhide list [last 30 chats v]\nask [What do you want to chat?] and wait\nif <<not <(letter (1) of (answer)) = [ ]>> and <not <(answer) = []>>> then\n    Encode (join (username) (join [:] (answer)))\n    set [☁ cloud process v] to (encoded)\nend\n\nwhen flag clicked\nset [repeat chat v] to [1]\nforever\n    set [re v] to (item (repeat chat) of [last 30 chats v])\n    change [repeat chat v] by (1)\n    if <(item (repeat chat) of [last 30 chats v]) = (re)> then\n        delete (repeat chat) of [last 30 chats v]\n    end\n    if <(repeat chat) = [31]> then\n        set [repeat chat v] to [1]\n    end\nend\n\nsay []\n\n
CHAT UPDATE\nArrow keys to move or wasd. \nYou only have one skip\nKinda short.\nThere is a secret involving the skip, can you find it?\nShift + Flag for turbo mode\nMy sister's platformer https://scratch.mit.edu/projects/430737308/