100% Pen Platformer
@Stage\n\nwhen flag clicked\nforever\n    play sound [Polargeist v] until done\nend\n\n@pen\n\ndefine None\nif <(char_add coordinates?) = [1]> then\n    add (x1) to [x1 v]\n    add (y1) to [y1 v]\n    add (x2) to [x2 v]\n    add (y2) to [y2 v]\n    add (type) to [type v]\nend\nif <<<((x1) - (char_x)) < [240]> and <((x2) - (char_x)) > [-240]>> and <<((y2) - (char_y)) < [180]> and <((y1) - (char_y)) > [-180]>>> then\n    if <(type) = [1]> then\n        set pen color to ((((0) * (65536)) + ((0) * (256))) + (255))\n    else\n        if <(type) = [2]> then\n            set pen color to ((((255) * (65536)) + ((0) * (256))) + (0))\n        else\n            if <(type) = [3]> then\n                set pen color to ((((255) * (65536)) + ((255) * (256))) + (0))\n            else\n                if <(type) = [4]> then\n                    set pen color to ((((255) * (65536)) + ((150) * (256))) + (0))\n                else\n                    if <(type) = [5]> then\n                        set pen color to ((((150) * (65536)) + ((0) * (256))) + (255))\n                    end\n                end\n            end\n        end\n    end\n    set pen size to (10)\n    go to x: ((x1) - (char_x)) y: ((y1) - (char_y))\n    if <((y1) - (char_y)) < [180]> then\n        pen down\n    end\n    go to x: ((x2) - (char_x)) y: ((y1) - (char_y))\n    pen up\n    if <((x2) - (char_x)) < [240]> then\n        pen down\n    end\n    go to x: ((x2) - (char_x)) y: ((y2) - (char_y))\n    pen up\n    if <((y2) - (char_y)) > [-180]> then\n        pen down\n    end\n    go to x: ((x1) - (char_x)) y: ((y2) - (char_y))\n    pen up\n    if <((x1) - (char_x)) > [-240]> then\n        pen down\n    end\n    go to x: ((x1) - (char_x)) y: ((y1) - (char_y))\n    pen up\nend\n\ndefine None\nset [level_endpoint green v] to (((level_endpoint green) + (15)) mod (256))\nif <<<((x) - (char_x)) < [240]> and <((x) - (char_x)) > [-240]>> and <<((y) - (char_y)) < [180]> and <((y) - (char_y)) > [-180]>>> then\n    go to x: ((x) - (char_x)) y: ((y) - (char_y))\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (150)) * (256)))\n    set pen size to (40)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (200)) * (256)))\n    set pen size to (35)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + ((level_endpoint green) * (256)))\n    set pen size to (30)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (50)) * (256)))\n    set pen size to (25)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (100)) * (256)))\n    set pen size to (20)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (150)) * (256)))\n    set pen size to (15)\n    pen down\n    pen up\n    set pen color to (((0) * (65536)) + (((level_endpoint green) + (200)) * (256)))\n    set pen size to (10)\n    pen down\n    pen up\n    if <<<((x) - (char_x)) < [30]> and <((x) - (char_x)) > [-30]>> and <<((y) - (char_y)) < [30]> and <((y) - (char_y)) > [-30]>>> then\n        new level (x) (y)\n    end\nend\n\ndelete (all) of [code v]\nadd [00/26403313] to [code v]\nadd [00/0626353423032332312000] to [code v]\nadd [31/20100105162635] to [code v]\nadd [00/063645413000] to [code v]\nadd [40/000333030646] to [code v]\nadd [00/0323030636] to [code v]\nadd [45/361605011030414323] to [code v]\nadd [00/0603434046] to [code v]\nadd [00/2010162606] to [code v]\nadd [01/1021261636] to [code v]\nadd [00/0603360330] to [code v]\nadd [06/0020] to [code v]\nadd [00/06234640] to [code v]\nadd [00/063036] to [code v]\nadd [10/0105163645413010] to [code v]\nadd [00/062635342303] to [code v]\nadd [10/0105163645413010/40/22] to [code v]\nadd [00/06263534230330] to [code v]\nadd [00/203132231304051636] to [code v]\nadd [20/260646] to [code v]\nadd [06/0110304146] to [code v]\nadd [06/2046] to [code v]\nadd [06/10263046] to [code v]\nadd [00/36/30/06] to [code v]\nadd [20/23062346] to [code v]\nadd [06/360030] to [code v]\nadd [00/20101605] to [code v]\nadd [30/0035261605] to [code v]\nadd [05/16263534233231201001] to [code v]\nadd [30/36330306] to [code v]\nadd [36/0603233231201001] to [code v]\nadd [35/26160501102031322303] to [code v]\nadd [10/3606] to [code v]\nadd [13/020110203132231304051626353423] to [code v]\nadd [30/361605041333] to [code v]\nadd [31/201001051626353105] to [code v]\nadd [00/00] to [code v]\nadd [00/11] to [code v]\nadd [00/00/02/06] to [code v]\nadd [00/00/02/031324251606] to [code v]\nadd [03/23] to [code v]\nadd [00/40] to [code v]\nadd [00/11/13/13] to [code v]\nadd [01/01/04/04] to [code v]\nadd [05/16] to [code v]\nadd [04/34/02/32] to [code v]\nadd [03/23/12/14] to [code v]\nadd [06/24/04/26] to [code v]\nadd [20/11031526] to [code v]\nadd [00/11231506] to [code v]\nadd [00/36] to [code v]\nadd [00/56/05/16251405/40/31425140] to [code v]\nadd [30/10010516364542222444] to [code v]\nadd [10/26/30/46/02/52/04/54] to [code v]\nadd [01/21322313041535/10/26] to [code v]\n\ndelete (all) of [symbols v]\nadd [a] to [symbols v]\nadd [b] to [symbols v]\nadd [c] to [symbols v]\nadd [d] to [symbols v]\nadd [e] to [symbols v]\nadd [f] to [symbols v]\nadd [g] to [symbols v]\nadd [h] to [symbols v]\nadd [i] to [symbols v]\nadd [j] to [symbols v]\nadd [k] to [symbols v]\nadd [l] to [symbols v]\nadd [m] to [symbols v]\nadd [n] to [symbols v]\nadd [o] to [symbols v]\nadd [p] to [symbols v]\nadd [q] to [symbols v]\nadd [r] to [symbols v]\nadd [s] to [symbols v]\nadd [t] to [symbols v]\nadd [u] to [symbols v]\nadd [v] to [symbols v]\nadd [w] to [symbols v]\nadd [x] to [symbols v]\nadd [y] to [symbols v]\nadd [z] to [symbols v]\nadd [1] to [symbols v]\nadd [2] to [symbols v]\nadd [3] to [symbols v]\nadd [4] to [symbols v]\nadd [5] to [symbols v]\nadd [6] to [symbols v]\nadd [7] to [symbols v]\nadd [8] to [symbols v]\nadd [9] to [symbols v]\nadd [0] to [symbols v]\nadd [.] to [symbols v]\nadd [,] to [symbols v]\nadd [!] to [symbols v]\nadd [?] to [symbols v]\nadd [-] to [symbols v]\nadd [_] to [symbols v]\nadd [;] to [symbols v]\nadd [:] to [symbols v]\nadd ['] to [symbols v]\nadd [=] to [symbols v]\nadd [+] to [symbols v]\nadd [*] to [symbols v]\nadd [\(] to [symbols v]\nadd [\)] to [symbols v]\nadd [/] to [symbols v]\nadd [%] to [symbols v]\nadd [@] to [symbols v]\nadd [#] to [symbols v]\nadd [$] to [symbols v]\n\ndefine walk\nsense ground\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [char_speedx v] by (-3)\nelse\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        change [char_speedx v] by (3)\n    end\nend\nchange [char_x v] by ((0) - (char_speedx))\nif <<(char_ground detection type) = [east]> or <(char_ground detection type) = [west]>> then\n    repeat until <<<not <(char_ground detection type) = [east]>> and <not <(char_ground detection type) = [west]>>> or <(char_touch ground) = [0]>>\n        if <(char_ground detection type) = [east]> then\n            change [char_x v] by (1)\n            set [char_speedx v] to [-1]\n        else\n            change [char_x v] by (-1)\n            set [char_speedx v] to [1]\n        end\n        if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> and <(level_block type) = [1]>> then\n            if <(char_ground detection type) = [east]> then\n                set [char_speedx v] to [-30]\n            else\n                if <(char_ground detection type) = [west]> then\n                    set [char_speedx v] to [30]\n                end\n            end\n            set [char_speedy v] to [10]\n            change [char_x v] by ((0) - (char_speedx))\n        end\n        sense ground\n    end\nend\n\ndefine sense ground\nset [sense_i v] to [0]\nset [char_touch ground v] to [0]\nrepeat (length of (x1))\n    change [sense_i v] by (1)\n    if <<<((char_x) + (20)) > (item (sense_i) of [x1 v])> and <((char_x) - (20)) < (item (sense_i) of [x2 v])>> and <<((char_y) - (20)) < (item (sense_i) of [y1 v])> and <((char_y) + (20)) > (item (sense_i) of [y2 v])>>> then\n        if <(item (sense_i) of [type v]) = [1]> then\n            set [char_touch ground v] to [1]\n            set [level_block type v] to [1]\n            Collide Where?\n        else\n            if <(item (sense_i) of [type v]) = [2]> then\n                restart\n            else\n                if <(item (sense_i) of [type v]) = [3]> then\n                    set [char_speedy v] to [23]\n                else\n                    if <(item (sense_i) of [type v]) = [4]> then\n                        set [char_touch ground v] to [1]\n                        set [level_block type v] to [2]\n                        Collide Where?\n                    else\n                    end\n                end\n            end\n        end\n    end\nend\nif <(char_touch ground) = [0]> then\n    set [char_ground detection type v] to [0]\nend\n\ndefine intro\nset [level_opacity v] to [0]\nrepeat (51)\n    change [level_opacity v] by (5)\n    erase all\n    Type [Simonsez04] at ( (-210) , (50) ) size: (10) thickness (10) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\n    Type [Simonsez04] at ( (-210) , (50) ) size: (10) thickness (4) color (rgbo): (0) (255) (255) (level_opacity) spacing: (1) far X: (1)\n    Type [Presents] at ( (-140) , (-50) ) size: (8) thickness (5) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nend\nwait (1) seconds\nrepeat (50)\n    change [level_opacity v] by (-5)\n    erase all\n    Type [Simonsez04] at ( (-210) , (50) ) size: (10) thickness (10) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\n    Type [Simonsez04] at ( (-210) , (50) ) size: (10) thickness (4) color (rgbo): (0) (255) (255) (level_opacity) spacing: (1) far X: (1)\n    Type [Presents] at ( (-140) , (-50) ) size: (8) thickness (5) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nend\nerase all\nset [level_opacity v] to [255]\nerase all\nType [A 100% Pen] at ( (-180) , (30) ) size: (9) thickness (10) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nType [Platformer] at ( (-192) , (-50) ) size: (9) thickness (10) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nType [A 100% Pen] at ( (-180) , (30) ) size: (9) thickness (4) color (rgbo): (0) (255) (255) (level_opacity) spacing: (1) far X: (1)\nType [Platformer] at ( (-192) , (-50) ) size: (9) thickness (4) color (rgbo): (0) (255) (255) (level_opacity) spacing: (1) far X: (1)\nwait (3) seconds\nerase all\nwait (1.5) seconds\n\ndefine Collide Where?\nif <not <(char_ground detection type) = [south]>> then\n    if <(char_y) > (item (sense_i) of [y1 v])> then\n        set [char_ground detection type v] to [north]\n    else\n        if <(char_y) < (item (sense_i) of [y2 v])> then\n            if <(char_speedy) > [0]> then\n                set [char_ground detection type v] to [south]\n            else\n                if <(char_x) > (item (sense_i) of [x2 v])> then\n                    set [char_ground detection type v] to [east]\n                else\n                    set [char_ground detection type v] to [west]\n                end\n            end\n        else\n            if <(char_x) > (item (sense_i) of [x2 v])> then\n                set [char_ground detection type v] to [east]\n            else\n                if <(char_x) < (item (sense_i) of [x1 v])> then\n                    set [char_ground detection type v] to [west]\n                else\n                    set [char_ground detection type v] to [north]\n                end\n            end\n        end\n    end\nend\n\ndefine touch ground\nsense ground\nset [char_can jump v] to [0]\nif <<(char_ground detection type) = [north]> or <(char_ground detection type) = [south]>> then\n    repeat until <not <<(char_ground detection type) = [north]> or <(char_ground detection type) = [south]>>>\n        if <(char_ground detection type) = [south]> then\n            change [char_y v] by (-5)\n        else\n            change [char_y v] by (1)\n            if <(level_block type) = [1]> then\n                set [char_can jump v] to [1]\n            end\n        end\n        set [char_speedy v] to [0]\n        sense ground\n    end\nend\n\nwhen I receive [fps v]\nset [frames v] to [0]\nforever\n    wait (1) seconds\n    set [fps v] to (frames)\n    set [frames v] to [0]\nend\n\ndefine None\nset [char_speedx v] to [0]\nset [char_speedy v] to [0]\nchange [char_x v] by (((x) - (char_x)) / (5))\nchange [char_y v] by (((y) - (char_y)) / (5))\n\ndefine None\nset [level_ending v] to [1]\nend animation (x) (y)\nchange [end_i v] by (1)\nif <(end_i) = [20]> then\n    change [level_level# v] by (1)\n    delete (all) of [x1 v]\n    delete (all) of [y1 v]\n    delete (all) of [x2 v]\n    delete (all) of [y2 v]\n    delete (all) of [type v]\n    set [char_add coordinates? v] to [1]\n    set [level_drawcount v] to [0]\n    set [char_speedx v] to [0]\n    set [char_speedy v] to [0]\n    set [end_i v] to [0]\n    set [level_ending v] to [0]\nend\n\nif <<mouse down?> and <<<((mouse x) + (char_x)) < [-40]> and <((mouse x) + (char_x)) > [-120]>> and <<((mouse y) + (char_y)) > [-255]> and <((mouse y) + (char_y)) < [-220]>>>> then\n    hide list [leaderboard v]\n    wait until <not <mouse down?>>\n    wait until <mouse down?>\n    wait until <not <mouse down?>>\nend\nshow list [leaderboard v]\n\ndefine draw level\nif <(level_level#) = [1]> then\n    level 1\nelse\n    if <(level_level#) = [2]> then\n        level 2\n    else\n        if <(level_level#) = [3]> then\n            level 3\n        else\n            if <(level_level#) = [4]> then\n                level 4\n            else\n                if <(level_level#) = [5]> then\n                    level 5\n                else\n                    if <(level_level#) = [6]> then\n                        level 6\n                    else\n                        if <(level_level#) = [7]> then\n                            level 7\n                        else\n                            if <(level_level#) = [8]> then\n                                level 8\n                            else\n                                if <(level_level#) = [9]> then\n                                    level 9\n                                else\n                                    if <(level_level#) = [10]> then\n                                        level 10\n                                    else\n                                        if <(level_level#) = [11]> then\n                                            set [char_stop timer v] to [1]\n                                            level 11\n                                        else\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nchange [level_drawcount v] by (1)\nif <<(level_drawcount) = [1]> or <(level_drawcount) = [2]>> then\n    go  to  x: (char_startx) y: (char_starty)\nend\nif <(level_drawcount) > [1]> then\n    set [char_add coordinates? v] to [0]\nend\nif <(low lag mode) = [0]> then\n    if <<(level_drawcount) < [100]> and <not <(level_level#) = [11]>>> then\n        Type (join [Level ] (level_level#)) at ( (-100) , (100) ) size: (7) thickness (5) color (rgbo): (0) (255) (255) (255) spacing: (2) far X: (1)\n    end\nend\nType (join [fps: ] (fps)) at ( (140) , (158) ) size: (3) thickness (5) color (rgbo): (0) (255) (255) (255) spacing: (1.5) far X: (1)\nType (join [time: ] (score frames)) at ( (-230) , (158) ) size: (3) thickness (5) color (rgbo): (0) (255) (255) (255) spacing: (1.5) far X: (1)\n\nType [\(platformer\)] at ( (-220) , (50) ) size: (9) thickness (10) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nType [\(platformer\)] at ( (-220) , (50) ) size: (9) thickness (4) color (rgbo): (0) (255) (255) (level_opacity) spacing: (1) far X: (1)\nType [A 100% Pen] at ( (-160) , (-40) ) size: (8) thickness (4) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\nType [Platformer] at ( (-170) , (-100) ) size: (8) thickness (4) color (rgbo): (0) (0) (255) (level_opacity) spacing: (1) far X: (1)\n\ndefine level 1\nset [char_startx v] to [0]\nset [char_starty v] to [2]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-200) (-20) (400) (-45) type (1)\n    draw block (500) (40) (600) (15) type (1)\n    draw block (700) (100) (1350) (75) type (1)\n    draw block (900) (160) (950) (110) type (2)\n    draw block (1100) (160) (1150) (110) type (2)\n    draw block (1360) (320) (1550) (295) type (1)\n    draw vertical line (1650) (600) (295) type (1)\n    draw horizontal line (1650) (600) (1850) type (1)\n    draw horizontal line (1300) (110) (1350) type (3)\n    draw block (-635) (-20) (-450) (-45) type (1)\n    if <(low lag mode) = [0]> then\n        Type [use arrow keys or wad] at ( ((-200) - (char_x)) , ((-80) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [to move \(or space to jump\)] at ( ((-200) - (char_x)) , ((-115) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [easter egg!] at ( ((-635) - (char_x)) , ((-80) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [\(don't tell\)] at ( ((-635) - (char_x)) , ((-115) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [jump!] at ( ((510) - (char_x)) , ((-20) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Don't touch red!] at ( ((750) - (char_x)) , ((40) - (char_y)) ) size: (4) thickness (4) color (rgbo): (255) (0) (0) (255) spacing: (1) far X: (1)\n        Type [Yellow is bouncy] at ( ((1065) - (char_x)) , ((40) - (char_y)) ) size: (4) thickness (4) color (rgbo): (255) (255) (0) (255) spacing: (1) far X: (1)\n        Type [You can wall jump!] at ( ((1375) - (char_x)) , ((260) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Touch the ] at ( ((1665) - (char_x)) , ((565) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (0) (255) spacing: (1) far X: (1)\n        Type [green circle!] at ( ((1665) - (char_x)) , ((535) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (0) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (1750) (700)\nend\n\ndefine level 2\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-100) (-150) (100) (-175) type (1)\n    draw horizontal line (-100) (-50) (-50) type (1)\n    draw horizontal line (50) (50) (100) type (1)\n    draw horizontal line (-100) (150) (-50) type (1)\n    draw horizontal line (50) (250) (300) type (4)\n    draw horizontal line (325) (225) (375) type (3)\n    draw vertical line (300) (400) (300) type (2)\n    if <(low lag mode) = [0]> then\n        Type [Can't jump on orange!] at ( ((50) - (char_x)) , ((190) - (char_y)) ) size: (4) thickness (4) color (rgbo): (255) (150) (0) (255) spacing: (1) far X: (1)\n        Type [Climb!] at ( ((-35) - (char_x)) , ((-210) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (150) (400)\nend\n\ndefine level 3\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-75) (-150) (75) (-175) type (1)\n    draw block (-1000) (-150) (-85) (-175) type (2)\n    draw block (85) (-150) (1000) (-175) type (2)\n    draw horizontal line (175) (-40) (225) type (1)\n    draw horizontal line (350) (75) (400) type (1)\n    draw horizontal line (175) (190) (225) type (1)\n    draw horizontal line (-25) (305) (25) type (1)\n    draw horizontal line (-225) (420) (-175) type (1)\n    draw horizontal line (-400) (535) (-350) type (3)\n    draw horizontal line (-300) (775) (-250) type (3)\n    draw horizontal line (-200) (1015) (-150) type (3)\n    draw horizontal line (100) (1015) (150) type (3)\n    if <(low lag mode) = [0]> then\n        Type [Lots of Jumps!] at ( ((-110) - (char_x)) , ((-210) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Now with yellow!] at ( ((-400) - (char_x)) , ((380) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Go for it!] at ( ((-200) - (char_x)) , ((970) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Good Job!] at ( ((100) - (char_x)) , ((970) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (350) (1200)\nend\n\ndefine level 4\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-50) (-150) (50) (-175) type (1)\n    draw horizontal line (-25) (-70) (25) type (3)\n    draw block (-100) (140) (25) (125) type (2)\n    draw block (-100) (160) (25) (150) type (1)\n    if <(low lag mode) = [0]> then\n        Type [what to do...] at ( ((-85) - (char_x)) , ((-215) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (-275) (275)\nend\n\ndefine level 8\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw horizontal line (-50) (-150) (50) type (3)\n    draw block (-70) (-145) (-60) (-155) type (2)\n    draw block (60) (-145) (70) (-155) type (2)\n    draw horizontal line (-100) (100) (0) type (3)\n    draw block (-120) (105) (-110) (95) type (2)\n    draw block (10) (105) (20) (95) type (2)\n    draw horizontal line (-50) (350) (50) type (3)\n    draw block (-70) (355) (-60) (345) type (2)\n    draw block (60) (355) (70) (345) type (2)\n    draw horizontal line (-100) (600) (0) type (3)\n    draw block (-120) (605) (-110) (595) type (2)\n    draw block (10) (605) (20) (595) type (2)\n    draw block (20) (760) (105) (715) type (2)\n    if <(low lag mode) = [0]> then\n        Type [Goodbye!] at ( ((-70) - (char_x)) , ((-200) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [Nice!] at ( ((30) - (char_x)) , ((725) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (175) (750)\nend\n\ndefine level 9\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-100) (-150) (100) (-175) type (1)\n    draw vertical line (-100) (100) (-150) type (1)\n    draw vertical line (100) (100) (-150) type (1)\n    draw vertical line (-70) (300) (100) type (1)\n    draw vertical line (70) (300) (100) type (1)\n    draw vertical line (-40) (490) (300) type (1)\n    draw vertical line (40) (490) (300) type (1)\n    draw horizontal line (-40) (500) (40) type (3)\n    draw horizontal line (-300) (500) (-50) type (2)\n    draw horizontal line (50) (500) (300) type (2)\n    if <(low lag mode) = [0]> then\n        Type [wall jumps!] at ( ((-80) - (char_x)) , ((-215) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [whoa!] at ( ((60) - (char_x)) , ((400) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (200) (700)\nend\n\ndefine level 10\nset [char_startx v] to [0]\nset [char_starty v] to [-155]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw vertical line (-100) (200) (-175) type (2)\n    draw vertical line (100) (-95) (-175) type (2)\n    draw block (-100) (-175) (100) (-200) type (1)\n    draw vertical line (100) (200) (-100) type (1)\n    draw horizontal line (-150) (100) (-100) type (2)\n    if <(low lag mode) = [0]> then\n        Type [More bouncing] at ( ((-110) - (char_x)) , ((-235) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [off the walls.] at ( ((-105) - (char_x)) , ((-270) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [just wing it!] at ( ((125) - (char_x)) , ((250) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [not what I meant  :\)] at ( ((330) - (char_x)) , ((-100) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [oops!] at ( ((-200) - (char_x)) , ((-420) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (-150) (-150)\nend\n\ndefine level 11\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (275) (-65) (350) (-140) type (2)\n    draw block (-200) (-150) (350) (-175) type (1)\n    draw horizontal line (200) (-140) (250) type (3)\n    draw block (360) (-150) (600) (-175) type (2)\n    draw horizontal line (425) (-75) (500) type (3)\n    draw vertical line (650) (300) (0) type (1)\n    draw horizontal line (650) (300) (750) type (1)\n    draw horizontal line (700) (0) (750) type (3)\n    draw horizontal line (850) (150) (900) type (3)\n    draw block (760) (100) (840) (50) type (2)\n    draw horizontal line (640) (-150) (690) type (3)\n    if <(low lag mode) = [0]> then\n        if <(level_finish game?) = [1]> then\n            Type [You completed the game!] at ( ((-230) - (char_x)) , ((0) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        end\n        Type [here is a playground you] at ( ((-230) - (char_x)) , ((-35) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [can mess around on.] at ( ((-230) - (char_x)) , ((-70) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\nend\n\ndraw block (-115) (-225) (-45) (-250) type (4)\ndraw block (-110) (-235) (-50) (-240) type (4)\nType [click here to open] at ( ((-200) - (char_x)) , ((-250) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\nType [the leaderboard] at ( ((-200) - (char_x)) , ((-285) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n\ndefine None\ndraw block (x1) (y1) (x2) (y1) type (type)\n\ndefine draw border\nset pen color to ((((0) * (65536)) + ((0) * (256))) + (0))\nset pen size to (6)\ngo to x: (-240) y: (180)\npen down\ngo to x: (240) y: (180)\ngo to x: (240) y: (-180)\ngo to x: (-240) y: (-180)\ngo to x: (-240) y: (180)\npen up\n\ndefine restart\nif <(restart_i) = [0]> then\n    start sound [explode_11.mp3 v]\nend\nset [char_exploding v] to [1]\nset [char_speedy v] to [0]\nset [char_speedx v] to [0]\nchange [restart_i v] by (1)\nif <(restart_i) = [20]> then\n    go  to  x: (char_startx) y: (char_starty)\n    set [restart_i v] to [0]\n    set [char_exploding v] to [0]\nend\n\ndefine Go\nbroadcast (fps v)\nforever\n    erase all\n    render\n    change [frames v] by (1)\n    if <(char_stop timer) = [0]> then\n        change [score frames v] by (1)\n    end\nend\n\ndefine draw letter\nset [tex_iii v] to [0]\nset [tex_pen down? v] to [-1]\nset [tex_highx v] to [0]\nrepeat until <(tex_iii) = (length of (item (tex_ii) of [code v]))>\n    change [tex_iii v] by (1)\n    if <(letter (tex_iii) of (item (tex_ii) of [code v])) = [/]> then\n        set [tex_pen down? v] to ((tex_pen down?) * (-1))\n        change [tex_iii v] by (1)\n    end\n    if <(tex_pen down?) = [1]> then\n        pen down\n    else\n        pen up\n    end\n    set [tex_xx v] to (letter (tex_iii) of (item (tex_ii) of [code v]))\n    if <(tex_xx) > (tex_highX)> then\n        set [tex_highx v] to (tex_xx)\n    end\n    change [tex_iii v] by (1)\n    set [tex_yy v] to (letter (tex_iii) of (item (tex_ii) of [code v]))\n    go to x: (((tex_x) + (tex_position)) + ((tex_xx) * (tex_size))) y: ((tex_y) + ((tex_yy) * (tex_size)))\nend\npen up\nchange [tex_position v] by (((tex_highX) + (tex_spacing)) * (tex_size))\nset x to ((tex_x) + (tex_position))\n\ndefine None\nif <<<(y) < [180]> and <((y) + ((6) * (size))) > [-200]>> and <<((x) + ((length of (string)) * (((size) * (spacing)) * (5)))) > [-240]> and <(x) < [240]>>> then\n    set pen color to (((((r) * (65536)) + ((g) * (256))) + (b)) + ((o) * (16777216)))\n    set pen size to (((thickness) * (size)) / (5))\n    go to x: (x) y: (y)\n    set [tex_x v] to (x)\n    set [tex_y v] to (y)\n    set [tex_size v] to (size)\n    set [tex_spacing v] to (spacing)\n    set [tex_i v] to [0]\n    set [tex_position v] to [0]\n    repeat (length of (string))\n        change [tex_i v] by (1)\n        if <(letter (tex_i) of (string)) = [ ]> then\n            change [tex_position v] by (((2) + (tex_spacing)) * (tex_size))\n            set x to ((tex_x) + (tex_position))\n        else\n            if <(farx) = [1]> then\n            else\n                if <(x position) > (farx)> then\n                    set [tex_x v] to (x)\n                    set [tex_y v] to ((tex_y) - ((size) * (8)))\n                    set [tex_position v] to [0]\n                end\n            end\n            if <[symbols v] contains (letter (tex_i) of (string))?> then\n                set [tex_ii v] to [0]\n                repeat until <(item (tex_ii) of [symbols v]) = (letter (tex_i) of (string))>\n                    change [tex_ii v] by (1)\n                end\n                draw letter\n            end\n        end\n    end\nend\n\ndefine character physics\nif <<(level_ending) = [0]> and <(char_exploding) = [0]>> then\n    change [char_speedy v] by (-1)\n    change [char_y v] by (char_speedy)\n    touch ground\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <key (w v) pressed?>>> and <(char_can jump) = [1]>> then\n        set [char_speedy v] to [16]\n    end\n    walk\n    set [char_speedx v] to ((char_speedx) * (0.6))\nend\nif <key (l v) pressed?> then\n    if <(L pressed?) = [0]> then\n        if <(low lag mode) = [1]> then\n            set [low lag mode v] to [0]\n        else\n            set [low lag mode v] to [1]\n        end\n        set [l pressed? v] to [1]\n    end\nelse\n    set [l pressed? v] to [0]\nend\nif <<(char_y) < (level_lowesty)> or <(restart_i) > [0]>> then\n    restart\nend\nif <<(char_stop timer) = [1]> and <(leaderboard_add score?) = [1]>> then\n    set [leaderboard_add score? v] to [0]\nend\nif <key (o v) pressed?> then\n    set [leaderboard_add score? v] to [0]\n    delete (all) of [x1 v]\n    delete (all) of [x2 v]\n    delete (all) of [y1 v]\n    delete (all) of [y2 v]\n    delete (all) of [type v]\n    set [char_add coordinates? v] to [1]\n    set [level_level# v] to [11]\n    set [level_finish game? v] to [0]\nend\ntouch ground\n\nType [click anywhere to toggle] at ( ((-200) - (char_x)) , ((-250) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\nType [the leaderboard] at ( ((-200) - (char_x)) , ((-285) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n\ndefine decode\ndelete (all) of [scores v]\ndelete (all) of [usernames v]\nif <(length of (☁ code)) > [0]> then\n    if <not <<(letter (length of (☁ code)) of (☁ code)) = [0]> and <(letter ((length of (☁ code)) - (1)) of (☁ code)) = [0]>>> then\n        set [☁ code v] to (join (☁ code) [00])\n    end\n    set [leaderboard_iiii v] to [-1]\n    repeat until <((leaderboard_iiii) + (1)) = (length of (☁ code))>\n        set [leaderboard_item v] to []\n        repeat until <(join (letter ((leaderboard_iiii) + (2)) of (☁ code)) (letter ((leaderboard_iiii) + (3)) of (☁ code))) = [00]>\n            change [leaderboard_iiii v] by (2)\n            if <(letter (leaderboard_iiii) of (☁ code)) = [0]> then\n                set [leaderboard_item v] to (join (leaderboard_item) (item (letter ((leaderboard_iiii) + (1)) of (☁ code)) of [symbol codes v]))\n            else\n                set [leaderboard_item v] to (join (leaderboard_item) (item (join (letter (leaderboard_iiii) of (☁ code)) (letter ((leaderboard_iiii) + (1)) of (☁ code))) of [symbol codes v]))\n            end\n        end\n        add (leaderboard_item) to [usernames v]\n        change [leaderboard_iiii v] by (2)\n        set [leaderboard_item v] to []\n        repeat until <(join (letter ((leaderboard_iiii) + (2)) of (☁ code)) (letter ((leaderboard_iiii) + (3)) of (☁ code))) = [00]>\n            change [leaderboard_iiii v] by (2)\n            if <(letter (leaderboard_iiii) of (☁ code)) = [0]> then\n                set [leaderboard_item v] to (join (leaderboard_item) (item (letter ((leaderboard_iiii) + (1)) of (☁ code)) of [symbol codes v]))\n            else\n                set [leaderboard_item v] to (join (leaderboard_item) (item (join (letter (leaderboard_iiii) of (☁ code)) (letter ((leaderboard_iiii) + (1)) of (☁ code))) of [symbol codes v]))\n            end\n        end\n        add (leaderboard_item) to [scores v]\n        change [leaderboard_iiii v] by (2)\n    end\nend\n\ndefine encode\nset [leaderboard_i v] to [0]\nset [☁ code v] to []\nrepeat (length of [scores v])\n    change [leaderboard_i v] by (1)\n    set [leaderboard_ii v] to [0]\n    repeat (length of (item (leaderboard_i) of [usernames v]))\n        change [leaderboard_ii v] by (1)\n        set [leaderboard_iii v] to [0]\n        repeat until <(letter (leaderboard_ii) of (item (leaderboard_i) of [usernames v])) = (item (leaderboard_iii) of [symbol codes v])>\n            change [leaderboard_iii v] by (1)\n        end\n        if <(leaderboard_iii) < [10]> then\n            set [☁ code v] to (join (☁ code) (join [0] (leaderboard_iii)))\n        else\n            set [☁ code v] to (join (☁ code) (leaderboard_iii))\n        end\n    end\n    set [☁ code v] to (join (☁ code) [00])\n    set [leaderboard_ii v] to [0]\n    repeat (length of (item (leaderboard_i) of [scores v]))\n        change [leaderboard_ii v] by (1)\n        set [leaderboard_iii v] to [0]\n        repeat until <(letter (leaderboard_ii) of (item (leaderboard_i) of [scores v])) = (item (leaderboard_iii) of [symbol codes v])>\n            change [leaderboard_iii v] by (1)\n        end\n        if <(leaderboard_iii) < [10]> then\n            set [☁ code v] to (join (☁ code) (join [0] (leaderboard_iii)))\n        else\n            set [☁ code v] to (join (☁ code) (leaderboard_iii))\n        end\n    end\n    set [☁ code v] to (join (☁ code) [00])\nend\n\ndelete (all) of [symbol codes v]\nadd [a] to [symbol codes v]\nadd [b] to [symbol codes v]\nadd [c] to [symbol codes v]\nadd [d] to [symbol codes v]\nadd [e] to [symbol codes v]\nadd [f] to [symbol codes v]\nadd [g] to [symbol codes v]\nadd [h] to [symbol codes v]\nadd [i] to [symbol codes v]\nadd [j] to [symbol codes v]\nadd [k] to [symbol codes v]\nadd [l] to [symbol codes v]\nadd [m] to [symbol codes v]\nadd [n] to [symbol codes v]\nadd [o] to [symbol codes v]\nadd [p] to [symbol codes v]\nadd [q] to [symbol codes v]\nadd [r] to [symbol codes v]\nadd [s] to [symbol codes v]\nadd [t] to [symbol codes v]\nadd [u] to [symbol codes v]\nadd [v] to [symbol codes v]\nadd [w] to [symbol codes v]\nadd [x] to [symbol codes v]\nadd [y] to [symbol codes v]\nadd [z] to [symbol codes v]\nadd [1] to [symbol codes v]\nadd [2] to [symbol codes v]\nadd [3] to [symbol codes v]\nadd [4] to [symbol codes v]\nadd [5] to [symbol codes v]\nadd [6] to [symbol codes v]\nadd [7] to [symbol codes v]\nadd [8] to [symbol codes v]\nadd [9] to [symbol codes v]\nadd [0] to [symbol codes v]\nadd [-] to [symbol codes v]\nadd [_] to [symbol codes v]\nadd [ ] to [symbol codes v]\n\ndelete (all) of [usernames v]\ndelete (all) of [scores v]\ndelete (all) of [leaderboard v]\nset [☁ code v] to []\n\ndefine None\nset [char_x v] to (x)\nset [char_y v] to (y)\n\ndefine leaderboard\n\ndefine None\ndraw block (x1) (y1) (x1) (y2) type (type)\n\ndefine level 5\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-1000]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-100) (-150) (100) (-175) type (1)\n    draw horizontal line (-450) (-400) (-400) type (3)\n    draw vertical line (-700) (0) (-250) type (1)\n    draw horizontal line (-800) (0) (-700) type (4)\n    if <(low lag mode) = [0]> then\n        Type [To jump or not to jump,] at ( ((-190) - (char_x)) , ((-210) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [that is the question.] at ( ((-175) - (char_x)) , ((-245) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [wrong way! :\)] at ( ((415) - (char_x)) , ((-460) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [First try!... or second? :\)] at ( ((-900) - (char_x)) , ((100) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (-750) (-125)\nend\n\ndefine level 6\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-600]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-100) (-150) (650) (-175) type (1)\n    draw block (150) (-90) (200) (-140) type (2)\n    draw block (300) (-90) (350) (-140) type (2)\n    draw block (450) (-90) (500) (-140) type (2)\n    draw block (600) (-90) (650) (-140) type (2)\n    draw horizontal line (650) (-350) (700) type (3)\n    draw horizontal line (0) (-250) (600) type (3)\n    if <(low lag mode) = [0]> then\n        Type [So close yet so far...] at ( ((-100) - (char_x)) , ((-50) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [ow   ow   ow   ow  ow  ow  ow] at ( ((50) - (char_x)) , ((-350) - (char_y)) ) size: (4.25) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (25) (-215)\nend\n\ndefine level 7\nset [char_startx v] to [0]\nset [char_starty v] to [-130]\nset [level_lowesty v] to [-500]\nif <not <(level_drawcount) = [0]>> then\n    draw block (-100) (-150) (900) (-175) type (1)\n    draw horizontal line (790) (100) (860) type (3)\n    draw horizontal line (200) (-140) (290) type (3)\n    draw horizontal line (400) (-140) (490) type (3)\n    draw horizontal line (600) (-140) (690) type (3)\n    draw horizontal line (800) (-140) (890) type (3)\n    draw block (0) (125) (790) (100) type (2)\n    draw block (860) (125) (1000) (100) type (2)\n    if <(low lag mode) = [0]> then\n        Type [Yellow isn't always your friend...] at ( ((-100) - (char_x)) , ((-215) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [...but it usually is.] at ( ((500) - (char_x)) , ((-215) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n        Type [-Simonsez04] at ( ((700) - (char_x)) , ((-275) - (char_y)) ) size: (4) thickness (4) color (rgbo): (0) (255) (255) (255) spacing: (1) far X: (1)\n    end\n    draw endpoint (600) (300)\nend\n\ndelete (all) of [x1 v]\ndelete (all) of [x2 v]\ndelete (all) of [y1 v]\ndelete (all) of [y2 v]\ndelete (all) of [type v]\nset [char_add coordinates? v] to [1]\nset [level_level# v] to [5]\n\ndefine add score to leaderboard\ndecode\nif <(length of (username)) > [0]> then\n    if <(length of [scores v]) = [0]> then\n        add (score frames) to [scores v]\n        add (username) to [usernames v]\n    else\n        if <[usernames v] contains (username)?> then\n            set [leaderboard_iiiii v] to [0]\n            repeat until <(username) = (item (leaderboard_iiiii) of [usernames v])>\n                change [leaderboard_iiiii v] by (1)\n            end\n            if <(score frames) < (item (leaderboard_iiiii) of [scores v])> then\n                delete (leaderboard_iiiii) of [scores v]\n                delete (leaderboard_iiiii) of [usernames v]\n                set [leaderboard_continue? v] to [1]\n            else\n                set [leaderboard_continue? v] to [0]\n            end\n        else\n            set [leaderboard_continue? v] to [1]\n        end\n        if <(leaderboard_continue?) = [1]> then\n            set [leaderboard_iiiiii v] to [0]\n            set [leaderboard_done? v] to [0]\n            repeat until <<(score frames) < (item (leaderboard_iiiiii) of [scores v])> or <(leaderboard_done?) = [1]>>\n                change [leaderboard_iiiiii v] by (1)\n                if <(leaderboard_iiiiii) > (length of [scores v])> then\n                    add (score frames) to [scores v]\n                    add (username) to [usernames v]\n                    set [leaderboard_done? v] to [1]\n                end\n            end\n            if <(leaderboard_done?) = [0]> then\n                insert (score frames) at (leaderboard_iiiiii) of [scores v] \n                insert (username) at (leaderboard_iiiiii) of [usernames v] \n            end\n        end\n    end\n    encode\nend\ndelete (all) of [leaderboard v]\nset [leaderboard_iiiiiii v] to [0]\nrepeat (length of [scores v])\n    change [leaderboard_iiiiiii v] by (1)\n    add (join (item (leaderboard_iiiiiii) of [scores v]) (join [ - @] (item (leaderboard_iiiiiii) of [usernames v]))) to [leaderboard v]\nend\n\nwhen flag clicked\nerase all\nset [level_finish game? v] to [1]\nset [leaderboard_add score? v] to [1]\nset [level_level# v] to [0]\nset [end_i v] to [19]\nset [char_exploding v] to [0]\nset [restart_i v] to [0]\nshow list [leaderboard v]\nset [leaderboard_shown? v] to [0]\nset [low lag mode v] to [0]\nset [score frames v] to [0]\nset [char_stop timer v] to [0]\nintro\nnew level (0) (2)\nGo\n\nif <(level_level#) = [11]> then\n    if <mouse down?> then\n        if <(mouse down?) = [0]> then\n            if <(leaderboard_shown?) = [1]> then\n                show list [leaderboard v]\n                set [leaderboard_shown? v] to [0]\n            else\n                hide list [leaderboard v]\n                set [leaderboard_shown? v] to [1]\n            end\n            set [mouse down? v] to [1]\n        end\n    else\n        set [mouse down? v] to [0]\n    end\nend\n\nadd score to leaderboard\n\ndefine draw character\nset pen shade to (50)\ngo to x: (0) y: (0)\nif <(char_exploding) = [1]> then\n    change [char_opacity v] by (-15)\nelse\n    set [char_opacity v] to [255]\nend\nset pen color to (((((150) * (65536)) + ((0) * (256))) + (255)) + ((char_opacity) * (16777216)))\nset pen size to (30)\npen down\npen up\nif <<(char_speedx) < [16]> and <(char_speedx) > [-16]>> then\n    set [char_facex v] to ((char_speedx) / (2))\nelse\n    if <(char_speedy) < [0]> then\n        set [char_facex v] to [-8]\n    else\n        set [char_facex v] to [8]\n    end\nend\nif <<(char_speedy) < [16]> and <(char_speedy) > [-16]>> then\n    set [char_facey v] to ((char_speedy) / (4))\nelse\n    if <(char_speedy) < [0]> then\n        set [char_facey v] to [-4]\n    else\n        set [char_facey v] to [4]\n    end\nend\nset pen color to (((((0) * (65536)) + ((255) * (256))) + (255)) + ((char_opacity) * (16777216)))\nset pen size to (5)\ngo to x: ((7) - ((char_facex) / (2))) y: ((5) + (char_facey))\npen down\npen up\ngo to x: ((-7) - ((char_facex) / (2))) y: ((5) + (char_facey))\npen down\npen up\ngo to x: ((-5) - ((char_facex) / (2))) y: ((-5) + (char_facey))\npen down\nchange x by (10)\npen up\n\ndefine render\ncharacter physics\ndraw level\ndraw border\ndraw character\nleaderboard\n\n