Paint | A Platformer

Instructions: Extra instruction: M to toggle on/off music. Otherwise, instruction in game\n\nI'll keep adding levels every 5 loves :D

@Stage\n\nwhen flag clicked\nforever\n    if <key (m v) pressed?> then\n        if <(volume) = [100]> then\n            set volume to (0) %\n        else\n            set volume to (100) %\n        end\n        wait (0.15) seconds\n    end\nend\n\nwhen flag clicked\nset volume to (100) %\nforever\n    play sound [Undertale OST  054 - Hotel - YouTube v] until done\nend\n\n@player\n\nwhen flag clicked\ngo [forward v] (1) layers\nswitch backdrop to (white-canvas v)\nset volume to (100) %\npoint in direction (90)\ngo to x: (-215) y: (-55)\nshow variable [blue paint v]\nshow variable [orange paint v]\nset [y v] to [0]\nset [x v] to [0]\nforever\n    show variable [blue paint v]\n    show variable [orange paint v]\n    change [y v] by (-1)\n    change y by (y)\n    touch ground <(y) > [0]>\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        change [x v] by (0.75)\n        switch costume to (right v)\n        if <touching color (#fdb900)?> then\n            change [x v] by (1.5)\n        end\n    end\n    if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n        change [x v] by (-0.75)\n        switch costume to (left v)\n        if <touching color (#fdb900)?> then\n            change [x v] by (-1.5)\n        end\n    end\n    if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(falling) < [3]>> then\n        set [y v] to [13]\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching color (#737373)?> then\n        change x by ((x) * (-1))\n        set [x v] to [0]\n    end\n    if <<touching color (#ff0000)?> or <touching (_edge_ v)?>> then\n        start sound [Water Drop v]\n        erase all\n        set [x v] to [0]\n        set [y v] to [0]\n        set [orange paint v] to [100]\n        set [blue paint v] to [100]\n        go to x: (-215) y: (-55)\n        if <([costume name v] of [ground v]) = [costume9]> then\n            go to x: (-215) y: (160)\n        end\n        if <([costume name v] of [ground v]) = [costume5]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [20]\n        end\n        if <([costume name v] of [ground v]) = [costume6]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume2]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [100]\n        end\n        if <([costume name v] of [ground v]) = [costume8]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume10]> then\n            set [orange paint v] to [50]\n            set [blue paint v] to [15]\n        end\n        if <([costume name v] of [ground v]) = [costume12]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [3]\n        end\n        if <([costume name v] of [ground v]) = [costume9]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n    end\n    if <touching color (#3290ff)?> then\n        start sound [Water Drop v]\n        set [y v] to [15]\n    end\n    if <touching (exit v)?> then\n        start sound [Collect v]\n        erase all\n        go to x: (-215) y: (-55)\n        if <([costume name v] of [ground v]) = [costume8]> then\n            go to x: (-215) y: (160)\n        end\n        set [orange paint v] to [100]\n        set [blue paint v] to [100]\n        if <([costume name v] of [ground v]) = [costume4]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [20]\n        end\n        if <([costume name v] of [ground v]) = [costume2]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume11]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [100]\n        end\n        if <([costume name v] of [ground v]) = [costume7]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume9]> then\n            set [orange paint v] to [50]\n            set [blue paint v] to [15]\n        end\n        if <([costume name v] of [ground v]) = [costume10]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [3]\n        end\n        if <([costume name v] of [ground v]) = [costume8]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        broadcast (next level v)\n        set [x v] to [0]\n        set [y v] to [0]\n    end\n    if <key (r v) pressed?> then\n        erase all\n        go to x: (-215) y: (-55)\n        if <([costume name v] of [ground v]) = [costume9]> then\n            go to x: (-215) y: (160)\n        end\n        set [x v] to [0]\n        set [y v] to [0]\n        set [orange paint v] to [100]\n        set [blue paint v] to [100]\n        if <([costume name v] of [ground v]) = [costume5]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [20]\n        end\n        if <([costume name v] of [ground v]) = [costume6]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume2]> then\n            set [orange paint v] to [0]\n            set [blue paint v] to [100]\n        end\n        if <([costume name v] of [ground v]) = [costume8]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n        if <([costume name v] of [ground v]) = [costume10]> then\n            set [orange paint v] to [50]\n            set [blue paint v] to [15]\n        end\n        if <([costume name v] of [ground v]) = [costume12]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [3]\n        end\n        if <([costume name v] of [ground v]) = [costume9]> then\n            set [orange paint v] to [100]\n            set [blue paint v] to [0]\n        end\n    end\nend\n\ndefine touch ground <up?>\nchange [falling v] by (1)\nrepeat until <not <touching color (#737373)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling v] to [0]\n    end\n    set [y v] to [0]\nend\n\n@ground\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@paint\n\nwhen flag clicked\nhide\nerase all\nset pen size to (12)\nset [paint color v] to [1]\nset [orange paint v] to [100]\nset [blue paint v] to [100]\nset [premousex v] to (mouse x)\nset [premousey v] to (mouse y)\nforever\n    if <mouse down?> then\n        if <(paint color) = [0]> then\n            if <[0] < (orange paint)> then\n                set pen color to (#ffbb00)\n                go to (mouse-pointer v)\n                change [orange paint v] by ((mousevel) * (-0.75))\n                pen down\n            else\n                broadcast (no more orange v)\n            end\n        else\n            if <[0] < (blue paint)> then\n                set pen color to (#3390ff)\n                go to (mouse-pointer v)\n                change [blue paint v] by ((mousevel) * (-0.75))\n                pen down\n            else\n                broadcast (no more blue v)\n            end\n        end\n    else\n        pen up\n    end\nend\n\nwhen flag clicked\nforever\n    set [mousevel v] to (([abs v] of ((mouse x) - (premousex)) ) + ([abs v] of ((mouse y) - (premousey)) ))\n    set [premousey v] to (mouse y)\n    set [premousex v] to (mouse x)\nend\n\nwhen flag clicked\nforever\n    if <key (1 v) pressed?> then\n        set [paint color v] to [1]\n    end\n    if <key (2 v) pressed?> then\n        set [paint color v] to [0]\n    end\nend\n\nwhen flag clicked\nforever\n    if <(paint color) = [0]> then\n        if <<mouse down?> and <((orange paint) - (mousevel)) < [0]>> then\n            pen up\n        end\n    else\n        if <<mouse down?> and <((blue paint) - (mousevel)) < [0]>> then\n            pen up\n        end\n    end\n    if <mouse down?> then\n        if <(mousevel) = [0]> then\n            if <(paint color) = [0]> then\n                change [orange paint v] by (-3)\n            else\n                change [blue paint v] by (-3)\n            end\n        end\n    end\nend\n\n@exit\n\nwhen flag clicked\ngo [backward v] (1) layers\nset [sine v] to [0]\nset [level v] to [0]\nset size to (110) %\ngo to x: (185) y: (-69)\nforever\n    show\n    change [sine v] by (6)\n    go to x: (185) y: ((([sin v] of (sine) ) * (4)) + (-40))\n    if <([costume name v] of [ground v]) = [costume4]> then\n        go to x: (-195) y: ((([sin v] of (sine) ) * (4)) + (145))\n    end\n    if <([costume name v] of [ground v]) = [costume5]> then\n        go to x: (185) y: ((([sin v] of (sine) ) * (4)) + (100))\n    end\n    if <([costume name v] of [ground v]) = [costume14]> then\n        hide\n        go to x: (0) y: ((([sin v] of (sine) ) * (4)) + (-180))\n    end\nend\n\n@Sprite1\n\nwhen flag clicked\ngo [forward v] (10) layers\ngo to x: (0) y: (0)\nshow variable [blue paint v]\nshow variable [orange paint v]\nswitch costume to (blue v)\nforever\n    if <(blue paint) < [0]> then\n        set [blue paint v] to [0]\n    end\n    if <(orange paint) < [0]> then\n        set [orange paint v] to [0]\n    end\n    if <key (1 v) pressed?> then\n        switch costume to (blue v)\n    end\n    if <key (2 v) pressed?> then\n        switch costume to (orange v)\n    end\nend\n\n@not enough paint\n\nwhen I receive [no more blue v]\nswitch costume to (no more blue v)\nset [ghost v] effect to (0)\nwait (0.5) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen I receive [no more orange v]\nswitch costume to (no more orange v)\nset [ghost v] effect to (0)\nwait (0.5) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to x: (0) y: (0)\ngo [backward v] (10) layers\nset size to (115) %\n\n@cool shine\n\nwhen flag clicked\npoint in direction (90)\ngo [backward v] (100) layers\nset [sine v] to [0]\nset [level v] to [0]\nset size to (115) %\ngo to x: (185) y: (-69)\nforever\n    show\n    turn right (4) degrees\n    change [sine v] by (6)\n    go to x: (185) y: ((([sin v] of (sine) ) * (4)) + (-40))\n    if <([costume name v] of [ground v]) = [costume4]> then\n        go to x: (-195) y: ((([sin v] of (sine) ) * (4)) + (145))\n    end\n    if <([costume name v] of [ground v]) = [costume5]> then\n        go to x: (185) y: ((([sin v] of (sine) ) * (4)) + (100))\n    end\n    if <([costume name v] of [ground v]) = [costume14]> then\n        hide\n        go to x: (0) y: ((([sin v] of (sine) ) * (4)) + (-360))\n    end\nend\n\n@thumbert\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nhide\n\n