0D Platformer
@Stage\n\nwhen flag clicked\nplay sound [Alan Walker - Faded v] until done\nforever\n    play sound [Mike Williams - Wait For You v] until done\nend\n\n@Player\n\nwhen flag clicked\nset [level v] to [1]\nhide\nwait (15) seconds\nshow\ngo to x: (-190) y: (135)\nset [level v] to [1]\nset [x velocity v] to [0]\nset [y velocity v] to [0]\nforever\n    X velocity\n    Y velocity\n    Collision and Wall Jump\n    Trail\n    Death\n    Trampoline Jump\n    Speed\n    Level Change\nend\n\ndefine X velocity\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [x velocity v] by (1)\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [x velocity v] by (-1)\nend\nset [x velocity v] to ((X velocity) * (.9))\nchange x by (X velocity)\n\ndefine Collision and Wall Jump\nif <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            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 x by ((X velocity) * (-1))\n                        change y by (-5)\n                        Wall jump\n                    end\n                    change [x velocity v] by (1)\n                end\n            end\n        end\n    end\nend\nchange [y velocity v] by (-1)\nchange y by (Y velocity)\nif <touching (ground v)?> then\n    change y by ((Y velocity) * (-1))\n    set [y velocity v] to [0]\nend\nchange y by (-1)\n\ndefine Y velocity\nif <touching (ground v)?> then\n    if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n        change [y velocity v] by (14)\n    end\nend\nchange y by (1)\n\ndefine Wall jump\nif <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n    if <(X velocity) > [0]> then\n        set [x velocity v] to [-7]\n    else\n        set [x velocity v] to [7]\n    end\n    set [y velocity v] to [10]\nelse\n    set [x velocity v] to [0]\nend\n\ndefine Trail\ncreate clone of (trail v)\n\ndefine Death\nif <touching (spikes. lava, holes, etc. v)?> then\n    go to x: (-190) y: (55)\nend\n\ndefine Trampoline Jump\nif <touching (trampoline v)?> then\n    if <(Y velocity) < [0]> then\n        set [y velocity v] to [18]\n    end\nend\n\ndefine Level Change\nif <(x position) > [235]> then\n    if <(LEVEL) < [13]> then\n        go to x: (-190) y: (55)\n        change [level v] by (1)\n    end\nend\n\ndefine Speed\nif <touching (sprite3 v)?> then\n    set [x velocity v] to [18]\nend\n\n@Trail\n\nwhen I start as a clone\ngo to (player v)\nshow\nset [ghost v] effect to (0)\nset size to (100) %\nrepeat (20)\n    change [ghost v] effect by (5)\n    change size by (-2.5)\nend\ndelete this clone\n\nwhen flag clicked\nhide\n\n@Ground\n\nwhen flag clicked\nhide\nwait (15) seconds\nshow\nforever\n    switch costume to (LEVEL)\nend\n\n@Sprite1\n\nwhen flag clicked\nhide\nwait (15) seconds\nshow\nforever\n    go to (player v)\n    go to [back v] layer\nend\n\n@Sprite2\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\n    go to x: (-240) y: (pick random (-180) to (180))\n    go to [back v] layer\nend\n\nwhen I start as a clone\nset [ghost v] effect to (pick random (0) to (100))\nrepeat until <(x position) > [230]>\n    change x by (pick random (3) to (30))\n    if <(pick random (1) to (10)) = [7]> then\n        change y by (pick random (-30) to (30))\n        change [ghost v] effect by (pick random (-30) to (30))\n    end\nend\ndelete this clone\n\n@Spikes. Lava, Holes, etc.\n\nwhen flag clicked\ngo to [back v] layer\nforever\n    switch costume to (LEVEL)\n    if <(LEVEL) = [7]> then\n        go to x: (0) y: (-90)\n        turn right (15) degrees\n    else\n        if <(LEVEL) = [8]> then\n            go to x: (-75) y: (-75)\n            turn right (15) degrees\n        else\n            if <(LEVEL) = [9]> then\n                go to x: (0) y: (0)\n                turn left (1) degrees\n            else\n                go to x: (0) y: (0)\n                point in direction (90)\n            end\n        end\n    end\nend\n\n@Trampoline\n\nwhen flag clicked\nforever\n    switch costume to (LEVEL)\nend\n\n@Sprite3\n\nwhen flag clicked\ngo to [back v] layer\nforever\n    switch costume to (LEVEL)\nend\n\n@Love fave\n\nwhen flag clicked\nhide\nforever\n    wait (pick random (10) to (15)) seconds\n    go to x: (0) y: (50)\n    show\n    go to [front v] layer\n    start sound [pop v]\n    repeat (9)\n        change y by (-6)\n    end\n    repeat (5)\n        change y by (3)\n    end\n    repeat (5)\n        change y by (-1)\n    end\n    wait (2.7) seconds\n    repeat (15)\n        change y by (7)\n    end\n    hide\nend\n\n@Time\n\nwhen flag clicked\nhide\nreset timer\nset [time v] to [0]\nforever\n    set [time v] to (timer)\nend\n\nwhen [timer v] > (TIME)\ngo to [front v] layer\nshow\n\nwait (15) seconds\n\n@PTE Ultra+\n\ndefine INTERNAL | calcWW (text) (cspace) (width) (space) (x) (offset)\ndelete all of [_temp0 v]\ndelete all of [_temp1 v]\ndelete all of [_temp2 v]\nset [_i3 v] to [1]\nset [_i4 v] to (space)\nset [_i5 v] to [0]\nset [_i8 v] to [0]\nset [_i9 v] to [0]\nrepeat (length of (text))\n    set [_i6 v] to (letter (_i3) of (text))\n    if <(_i6) = [ ]> then\n        add [1] to [_temp2 v]\n        if <((_i5) + (_i4)) > (width)> then\n            add ((_i9) - (1)) to [_temp0 v]\n            add ((x) + ((offset) * (_i5))) to [_temp1 v]\n            set [_i5 v] to (_i4)\n            set [_i4 v] to (space)\n            set [_i9 v] to ((_i8) + (1))\n        else\n            change [_i5 v] by (_i4)\n            set [_i4 v] to (space)\n            change [_i9 v] by ((_i8) + (1))\n        end\n        set [_i8 v] to [0]\n    else\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i6)?> then\n            switch costume to (_i6)\n            set [_i7 v] to (costume [number v])\n        else\n            set [_i7 v] to (item # of (_i6) in [_chars v])\n        end\n        if <not <(_i7) = [0]>> then\n            add (_i7) to [_temp2 v]\n            set [_i7 v] to ((item (_i7) of [_charwidths v]) + (cspace))\n            if <((_i4) + (_i7)) > (width)> then\n                add ((_i9) - (1)) to [_temp0 v]\n                add ((x) + ((offset) * (_i5))) to [_temp1 v]\n                set [_i5 v] to (_i4)\n                set [_i4 v] to ((space) + (_i7))\n                set [_i9 v] to ((_i8) + (1))\n                set [_i8 v] to [1]\n                add (item (last) of [_temp2 v]) to [_temp2 v]\n            else\n                change [_i4 v] by (_i7)\n                change [_i8 v] by (1)\n            end\n        end\n    end\n    change [_i3 v] by (1)\nend\nif <(_i8) = [0]> then\n    if <not <(_i9) = [0]>> then\n        add ((_i9) - (1)) to [_temp0 v]\n        add ((x) + ((offset) * (_i5))) to [_temp1 v]\n    end\nelse\n    if <((_i5) + (_i4)) > (width)> then\n        add ((_i9) - (1)) to [_temp0 v]\n        add ((x) + ((offset) * (_i5))) to [_temp1 v]\n        add (_i8) to [_temp0 v]\n        add ((x) + ((offset) * (_i4))) to [_temp1 v]\n    else\n        add ((_i9) + (_i8)) to [_temp0 v]\n        add ((x) + ((offset) * ((_i5) + (_i4)))) to [_temp1 v]\n    end\nend\nrepeat until <<not <(item (1) of [_temp0 v]) < [1]>> or <(length of [_temp0 v]) < [1]>>\n    delete (1) of [_temp0 v]\n    delete (1) of [_temp1 v]\nend\nrepeat until <<not <(item (last) of [_temp0 v]) < [1]>> or <(length of [_temp0 v]) < [1]>>\n    delete (last) of [_temp0 v]\n    delete (last) of [_temp1 v]\nend\n\ndefine Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\nSlow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\n\ndefine Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\npen up\nset pen color to ((((65536) * (round (r))) + ((256) * (round (g)))) + (round (b)))\nset [_x v] to (x)\nset [_i0 v] to ((0.01) * (size))\nset [_i1 v] to ([abs v] of ((0.125) * ((w) * (size))) )\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round (_i1)) mod (2)) = [0]> and <not <(_i1) < [0.5]>>> then\n        set [_y v] to (round (y))\n    else\n        set [_y v] to (([floor v] of (y) ) + (0.5))\n    end\nelse\n    set [_y v] to (y)\nend\nif <(w) < [0]> then\n    set [_i2 v] to ((0.125) * (size))\nelse\n    set [_i2 v] to (_i1)\nend\nINTERNAL | printText (text) (_y) (_i0) ((width) * (_i0)) ([tan v] of (s) ) ((_i0) * (u)) (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)) (align) ([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) ((1) / (([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) + (1))) (_i1) ((_i1) + (1)) (((0.6) + ((0.4) * <([floor v] of ((u) / (100)) ) = [0]>)) * (_i1)) ((0.09375) * (size))\n\ndefine WW Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\nWW Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\n\ndefine WW Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\npen up\nset pen color to ((((65536) * (round (r))) + ((256) * (round (g)))) + (round (b)))\nset [_i0 v] to ((0.01) * (size))\nset [_i1 v] to ([abs v] of ((0.125) * ((w) * (size))) )\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round (_i1)) mod (2)) = [0]> and <not <(_i1) < [0.5]>>> then\n        set [_y v] to (round (y))\n    else\n        set [_y v] to (([floor v] of (y) ) + (0.5))\n    end\nelse\n    set [_y v] to (y)\nend\nif <(w) < [0]> then\n    set [_i2 v] to ((0.125) * (size))\nelse\n    set [_i2 v] to (_i1)\nend\nset [_i3 v] to (((100) / (size)) / (width))\nset [_i4 v] to ((_i3) * (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)))\nif <(align) = [r]> then\n    set [_i5 v] to ((-1) * (_i0))\nelse\n    if <(align) = [c]> then\n        set [_i5 v] to ((-0.5) * (_i0))\n    else\n        set [_i5 v] to [0]\n    end\nend\nset [_i5 v] to ((width) * (_i5))\nset [_i6 v] to ((item (1) of [_charwidths v]) + (_i4))\nINTERNAL | calcWW (text) (_i4) (((_i3) * (ww width)) + ((_i6) + (_i4))) (_i6) ((x) - ((_i5) * ((_i6) + (_i4)))) (_i5)\nINTERNAL | printWW (_i0) ((width) * (_i0)) ([tan v] of (s) ) ((_i0) * (u)) <not <(u) = [0]>> (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)) (round ((((-0.65) * ((lspace) * (size))) - (size)) - (_i2))) ([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) ((1) / (([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) + (1))) (_i1) ((_i1) + (1)) (((0.6) + ((0.4) * <([floor v] of ((u) / (100)) ) = [0]>)) * (_i1)) ((0.09375) * (size))\n\ndefine INTERNAL | drawBezier (x2) (y2) (x3) (y3) (qual) (dt)\nINTERNAL | bezier (((x3) - ((2) * (x2))) + (x position)) ((2) * ((x2) - (x position))) (x position) (((y3) - ((2) * (y2))) + (y position)) ((2) * ((y2) - (y position))) (y position) (qual) (dt)\ngo to x: (x3) y: (y3)\n\ndefine INTERNAL | bezier (cx1) (cx2) (x1) (cy1) (cy2) (y1) (qual) (dt)\nset [_i4 v] to [0]\nrepeat (qual)\n    change [_i4 v] by (dt)\n    go to x: (((_i4) * (((_i4) * (cx1)) + (cx2))) + (x1)) y: (((_i4) * (((_i4) * (cy1)) + (cy2))) + (y1))\nend\n\ndefine Newlines | # of Lines (lines) Size (size) Weight (w) LSpace (lspace)\nif <(w) < [0]> then\n    change [_y v] by ((lines) * (round ((((-0.65) * ((lspace) * (size))) - (size)) - ((0.125) * (size)))))\nelse\n    change [_y v] by ((lines) * (round ((((-0.65) * ((lspace) * (size))) - (size)) - ((0.125) * ((w) * (size))))))\nend\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round ((0.125) * ((w) * (size)))) mod (2)) = [0]> and <not <((0.125) * ((w) * (size))) < [0.5]>>> then\n        set [_y v] to (round (_y))\n    else\n        set [_y v] to (([floor v] of (_y) ) + (0.5))\n    end\nend\n\ndefine INTERNAL | printWW (height) (width) (slant) (underline) <hasundr> (cspace) (lspace) (bezqual) (bezdt) (weight) (dotweight) (underlwt) (underloffset)\nset [_i0 v] to [1]\nset [_i1 v] to [1]\nrepeat (length of [_temp0 v])\n    set [_x v] to (item (_i0) of [_temp1 v])\n    repeat (item (_i0) of [_temp0 v])\n        INTERNAL | printChar (item (_i1) of [_temp2 v]) (height) (width) (_x) (_y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n        change [_x v] by (cspace)\n        change [_i1 v] by (1)\n    end\n    change [_i1 v] by (1)\n    if <hasundr> then\n        set pen size to (underlwt)\n        go to x: ((((_x) - (cspace)) + ((slant) * (underline))) + (underloffset)) y: ((_y) + (underline))\n        pen down\n        set x to (((item (_i0) of [_temp1 v]) + ((slant) * (underline))) - (underloffset))\n        pen up\n    end\n    change [_y v] by (lspace)\n    change [_i0 v] by (1)\nend\nchange [_y v] by ((-1) * (lspace))\ndelete all of [_temp2 v]\n\ndefine INTERNAL | printText (text) (y) (height) (width) (slant) (underline) (space) (align) (bezqual) (bezdt) (weight) (dotweight) (underlwt) (underloffset)\nif <<(align) = [c]> or <(align) = [r]>> then\n    delete all of [_temp0 v]\n    set [_i0 v] to [1]\n    set [_i1 v] to [0]\n    repeat (length of (text))\n        set [_i2 v] to (letter (_i0) of (text))\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i2)?> then\n            switch costume to (_i2)\n            change [_i1 v] by (((width) * (item (costume [number v]) of [_charwidths v])) + (space))\n            add (costume [number v]) to [_temp0 v]\n        else\n            set [_i2 v] to (item # of (_i2) in [_chars v])\n            if <not <(_i2) = [0]>> then\n                change [_i1 v] by (((width) * (item (_i2) of [_charwidths v])) + (space))\n                add (_i2) to [_temp0 v]\n            end\n        end\n        change [_i0 v] by (1)\n    end\n    if <(align) = [c]> then\n        change [_x v] by ((-0.5) * ((_i1) - (space)))\n    else\n        change [_x v] by ((-1) * ((_i1) - (space)))\n    end\n    set [_i6 v] to (_x)\n    set [_i0 v] to [1]\n    repeat (length of [_temp0 v])\n        INTERNAL | printChar (item (_i0) of [_temp0 v]) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n        change [_x v] by (space)\n        change [_i0 v] by (1)\n    end\nelse\n    set [_i6 v] to (_x)\n    set [_i0 v] to [1]\n    repeat (length of (text))\n        set [_i7 v] to (letter (_i0) of (text))\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i7)?> then\n            switch costume to (_i7)\n            INTERNAL | printChar (costume [number v]) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n            change [_x v] by (space)\n        else\n            set [_i7 v] to (item # of (_i7) in [_chars v])\n            if <not <(_i7) = [0]>> then\n                INTERNAL | printChar (_i7) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n                change [_x v] by (space)\n            end\n        end\n        change [_i0 v] by (1)\n    end\nend\nif <not <(underline) = [0]>> then\n    set pen size to (underlwt)\n    go to x: ((((_x) - (space)) + ((slant) * (underline))) + (underloffset)) y: ((y) + (underline))\n    pen down\n    set x to (((_i6) + ((slant) * (underline))) - (underloffset))\n    pen up\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\nswitch costume to (sizebypass v)\nset size to (50000) %\nswitch costume to (pte ultra+ v)\n\ndefine INTERNAL | loadFont (font)\nset [_i0 v] to [1]\nrepeat until <(_i0) > (length of (font))>\n    set [_i1 v] to (letter (_i0) of (font))\n    if <[_chars v] contains (_i1)?> then\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n            switch costume to (_i1)\n            set [_i4 v] to (costume [number v])\n        else\n            set [_i4 v] to (item # of (_i1) in [_chars v])\n        end\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n            switch costume to (_i1)\n            if <(costume [number v]) > [27]> then\n                set [_i2 v] to (item # of (join [_] (_i1)) in [_chardata v])\n                set [_i5 v] to (item (_i2) of [_chardata v])\n                replace item (_i2) of [_chardata v] with []\n                set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n                replace item (_i2) of [_chardata v] with (_i5)\n            else\n                set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n            end\n        else\n            set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n        end\n    else\n        add (_i1) to [_chars v]\n        add [0] to [_charids v]\n        add [0] to [_charwidths v]\n        add (join [_] (_i1)) to [_chardata v]\n        set [_i3 v] to ((length of [_chardata v]) + (1))\n        set [_i4 v] to (length of [_chars v])\n    end\n    add [_] to [_chardata v]\n    change [_i0 v] by (2)\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    replace item (_i4) of [_charwidths v] with ((1) * (_i2))\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n        insert (round (_i2)) at (_i3) of [_chardata v] \n    else\n        replace item (_i3) of [_chardata v] with (round (_i2))\n    end\n    change [_i3 v] by (1)\n    repeat (round (_i2))\n        repeat (2)\n            set [_i2 v] to []\n            repeat until <(letter (_i0) of (font)) = [ ]>\n                set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                change [_i0 v] by (1)\n            end\n            change [_i0 v] by (1)\n            if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                insert ((1) * (_i2)) at (_i3) of [_chardata v] \n            else\n                replace item (_i3) of [_chardata v] with ((1) * (_i2))\n            end\n            change [_i3 v] by (1)\n        end\n        set [_i2 v] to []\n        repeat until <(letter (_i0) of (font)) = [ ]>\n            set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n            change [_i0 v] by (1)\n        end\n        change [_i0 v] by (1)\n        if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n            insert (round (_i2)) at (_i3) of [_chardata v] \n        else\n            replace item (_i3) of [_chardata v] with (round (_i2))\n        end\n        change [_i3 v] by (1)\n        repeat (round (_i2))\n            if <(letter (_i0) of (font)) = [b]> then\n                if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                    insert [b] at (_i3) of [_chardata v] \n                else\n                    replace item (_i3) of [_chardata v] with [b]\n                end\n                change [_i3 v] by (1)\n                change [_i0 v] by (2)\n                repeat (4)\n                    set [_i2 v] to []\n                    repeat until <(letter (_i0) of (font)) = [ ]>\n                        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                        change [_i0 v] by (1)\n                    end\n                    change [_i0 v] by (1)\n                    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                        insert ((1) * (_i2)) at (_i3) of [_chardata v] \n                    else\n                        replace item (_i3) of [_chardata v] with ((1) * (_i2))\n                    end\n                    change [_i3 v] by (1)\n                end\n            else\n                repeat (2)\n                    set [_i2 v] to []\n                    repeat until <(letter (_i0) of (font)) = [ ]>\n                        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                        change [_i0 v] by (1)\n                    end\n                    change [_i0 v] by (1)\n                    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                        insert ((1) * (_i2)) at (_i3) of [_chardata v] \n                    else\n                        replace item (_i3) of [_chardata v] with ((1) * (_i2))\n                    end\n                    change [_i3 v] by (1)\n                end\n            end\n        end\n    end\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n        insert (round (_i2)) at (_i3) of [_chardata v] \n    else\n        replace item (_i3) of [_chardata v] with (round (_i2))\n    end\n    change [_i3 v] by (1)\n    repeat (round (_i2))\n        repeat (2)\n            set [_i2 v] to []\n            repeat until <(letter (_i0) of (font)) = [ ]>\n                set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                change [_i0 v] by (1)\n            end\n            change [_i0 v] by (1)\n            if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                insert ((1) * (_i2)) at (_i3) of [_chardata v] \n            else\n                replace item (_i3) of [_chardata v] with ((1) * (_i2))\n            end\n            change [_i3 v] by (1)\n        end\n    end\n    delete (last) of [_chardata v]\nend\nset [_i0 v] to [1]\nrepeat (length of [_chars v])\n    set [_i1 v] to (item (_i0) of [_chars v])\n    if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n        switch costume to (_i1)\n        if <(costume [number v]) > [27]> then\n            set [_i2 v] to (item # of (join [_] (_i1)) in [_chardata v])\n            set [_i3 v] to (item (_i2) of [_chardata v])\n            replace item (_i2) of [_chardata v] with []\n            replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n            replace item (_i2) of [_chardata v] with (_i3)\n        else\n            replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n        end\n    else\n        replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n    end\n    change [_i0 v] by (1)\nend\n\ndefine Import Font | Data (font data)\nset [_i0 v] to [1]\nrepeat until <(letter (_i0) of (font data)) = [{]>\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nrepeat until <(letter (_i0) of (font data)) = [\[]>\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nset [_i1 v] to []\nrepeat until <(letter (_i0) of (font data)) = [\]]>\n    set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nset [_i6 v] to (_i1)\ndelete all of [_temp0 v]\nchange [_i0 v] by (1)\nrepeat until <<(letter (_i0) of (font data)) = [\[]> or <(letter (_i0) of (font data)) = [}]>>\n    change [_i0 v] by (1)\nend\nrepeat until <(letter (_i0) of (font data)) = [}]>\n    change [_i0 v] by (1)\n    delete all of [_temp1 v]\n    add (letter (_i0) of (font data)) to [_temp0 v]\n    change [_i0 v] by (2)\n    set [_i1 v] to []\n    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\]]>>\n        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n        change [_i0 v] by (1)\n    end\n    add (_i1) to [_temp0 v]\n    set [_i2 v] to ((length of [_temp0 v]) + (1))\n    set [_i3 v] to [0]\n    repeat until <<(letter (_i0) of (font data)) = [\(]> or <(letter (_i0) of (font data)) = [\]]>>\n        change [_i0 v] by (1)\n    end\n    repeat until <(letter (_i0) of (font data)) = [\]]>\n        set [_i4 v] to ((length of [_temp0 v]) + (3))\n        set [_i5 v] to [0]\n        repeat until <(letter (_i0) of (font data)) = [\)]>\n            change [_i0 v] by (1)\n            if <(letter (_i0) of (font data)) = [b]> then\n                add [b] to [_temp0 v]\n                change [_i0 v] by (1)\n                repeat (4)\n                    change [_i0 v] by (1)\n                    set [_i1 v] to []\n                    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\)]>>\n                        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n                        change [_i0 v] by (1)\n                    end\n                    add (_i1) to [_temp0 v]\n                end\n            else\n                change [_i0 v] by (-1)\n                repeat (2)\n                    change [_i0 v] by (1)\n                    set [_i1 v] to []\n                    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\)]>>\n                        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n                        change [_i0 v] by (1)\n                    end\n                    add (_i1) to [_temp0 v]\n                end\n            end\n            change [_i5 v] by (1)\n        end\n        if <(_i5) = [1]> then\n            add (item ((length of [_temp0 v]) - (1)) of [_temp0 v]) to [_temp1 v]\n            add (item (last) of [_temp0 v]) to [_temp1 v]\n            delete (last) of [_temp0 v]\n            delete (last) of [_temp0 v]\n        else\n            insert ((_i5) - (1)) at (_i4) of [_temp0 v] \n            change [_i3 v] by (1)\n        end\n        repeat until <<(letter (_i0) of (font data)) = [\(]> or <(letter (_i0) of (font data)) = [\]]>>\n            change [_i0 v] by (1)\n        end\n    end\n    insert (_i3) at (_i2) of [_temp0 v] \n    insert (round ((length of [_temp1 v]) / (2))) at (1) of [_temp1 v] \n    repeat (length of [_temp1 v])\n        add (item (1) of [_temp1 v]) to [_temp0 v]\n        delete (1) of [_temp1 v]\n    end\n    repeat until <<(letter (_i0) of (font data)) = [\[]> or <(letter (_i0) of (font data)) = [}]>>\n        change [_i0 v] by (1)\n    end\nend\nadd [] to [_temp0 v]\nset [_i0 v] to (item # of (_i6) in [_fonts v])\nif <((_i0) mod (2)) = [1]> then\n    replace item ((_i0) + (1)) of [_fonts v] with (_temp0)\nelse\n    add (_i6) to [_fonts v]\n    add (_temp0) to [_fonts v]\nend\ndelete all of [_temp0 v]\n\ndefine Load Font | Name (font)\nset [_i0 v] to (item # of (font) in [_fonts v])\nif <((_i0) mod (2)) = [1]> then\n    INTERNAL | loadFont (item ((_i0) + (1)) of [_fonts v])\nend\n\ndefine Reset Character Data\ndelete all of [_chars v]\ndelete all of [_charids v]\ndelete all of [_charwidths v]\ndelete all of [_chardata v]\nset [_i0 v] to [1]\nrepeat (53)\n    set [_i1 v] to (letter (_i0) of [ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ])\n    add (_i1) to [_chars v]\n    add ((length of [_chardata v]) + (3)) to [_charids v]\n    add [0] to [_charwidths v]\n    add (join [_] (_i1)) to [_chardata v]\n    add [0] to [_chardata v]\n    change [_i0 v] by (1)\nend\n\ndefine INTERNAL | printChar (num) (height) (width) (x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\nchange [_x v] by ((width) * (item (num) of [_charwidths v]))\nset [_i3 v] to (item (num) of [_charids v])\nset pen size to (weight)\nrepeat (item ((_i3) - (1)) of [_chardata v])\n    set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n    go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n    pen down\n    change [_i3 v] by (3)\n    repeat (item ((_i3) - (1)) of [_chardata v])\n        if <(item (_i3) of [_chardata v]) = [b]> then\n            set [_i4 v] to ((height) * (item ((_i3) + (2)) of [_chardata v]))\n            set [_i5 v] to ((height) * (item ((_i3) + (4)) of [_chardata v]))\n            INTERNAL | drawBezier ((x) + (((width) * (item ((_i3) + (1)) of [_chardata v])) + ((slant) * (_i4)))) ((y) + (_i4)) ((x) + (((width) * (item ((_i3) + (3)) of [_chardata v])) + ((slant) * (_i5)))) ((y) + (_i5)) (bezqual) (bezdt)\n            change [_i3 v] by (5)\n        else\n            set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n            go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n            change [_i3 v] by (2)\n        end\n    end\n    pen up\nend\nset pen size to (dotweight)\nchange [_i3 v] by (1)\nrepeat (item ((_i3) - (1)) of [_chardata v])\n    set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n    go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n    pen down\n    pen up\n    change [_i3 v] by (2)\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\nerase all\nwait (15) seconds\nReset Character Data\nLoad Font | Name [Parabolic]\nforever\n    erase all\n    if <(LEVEL) = [1]> then\n        Print | Pos (-220) (140) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [l] Text [Hello!]\n    end\n    if <(LEVEL) = [2]> then\n        Print | Pos (-220) (140) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [l] Text [We're at the moon!]\n    end\n    if <(LEVEL) = [3]> then\n        Print | Pos (-220) (140) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [l] Text [Your friend got lost!]\n    end\n    if <(LEVEL) = [13]> then\n        Print | Pos (-50) (90) Size (10) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [You found your friend!]\n        Print | Pos (-50) (60) Size (15) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Love, favorite and follow!]\n    end\nend\n\n@Sprite4\n\nwhen flag clicked\nreset timer\npoint in direction (90)\nhide\ngo to x: (0) y: (0)\nwait (2.6) seconds\nshow\nrepeat (10)\n    repeat (10)\n        change [color v] effect by (10)\n    end\nend\nrepeat (10)\n    turn right (36) degrees\nend\nset [color v] effect to (0)\nwait (7) seconds\nhide\n\nwhen flag clicked\nforever\n    set [timer v] to (timer)\nend\n\nwhen [timer v] > (TIMER)\nshow\n\n@Sprite5\n\nwhen flag clicked\nshow\ngo to x: (-240) y: (0)\nset [x v] to [0]\nrepeat (60)\n    change x by (0.5)\nend\nrepeat (30)\n    change [x v] by (1)\n    change x by (x)\nend\n\nwhen flag clicked\nforever\n    if <(x position) > [-40]> then\n        hide\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nrepeat (60)\n    turn right (6) degrees\nend\nrepeat (30)\n    turn right (45) degrees\nend\n\n@Sprite6\n\nwhen flag clicked\nshow\ngo to x: (240) y: (0)\nset [x v] to [0]\nrepeat (60)\n    change x by (-0.5)\nend\nrepeat (30)\n    change [x v] by (-1)\n    change x by (x)\nend\n\nwhen flag clicked\nforever\n    if <(x position) < [40]> then\n        hide\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nrepeat (60)\n    turn right (6) degrees\nend\nrepeat (30)\n    turn right (45) degrees\nend\n\n@Sprite7\n\nwhen flag clicked\nshow\ngo to x: (0) y: (240)\nset [y v] to [0]\nrepeat (60)\n    change y by (-0.5)\nend\nrepeat (30)\n    change [y v] by (-1)\n    change y by (y)\nend\n\nwhen flag clicked\nforever\n    if <(y position) < [40]> then\n        hide\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nrepeat (60)\n    turn right (6) degrees\nend\nrepeat (30)\n    turn right (45) degrees\nend\n\n@Sprite8\n\nwhen flag clicked\nshow\ngo to x: (0) y: (-240)\nset [y v] to [0]\nrepeat (60)\n    change y by (0.5)\nend\nrepeat (30)\n    change [y v] by (1)\n    change y by (y)\nend\n\nwhen flag clicked\nforever\n    if <(y position) > [-40]> then\n        hide\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nrepeat (60)\n    turn right (6) degrees\nend\nrepeat (30)\n    turn right (45) degrees\nend\n\n@REMOVE THIS SPRITE4\n\nwhen flag clicked\ngo to x: (0) y: (-30000)\nhide\nrepeat (100)\n    go to x: (pick random (-200) to (-100)) y: (-3000)\n    create clone of (_myself_ v)\n    wait (0.01) seconds\nend\n\nwhen I start as a clone\nset [y v] to (pick random (10) to (15))\nshow\ngo to [back v] layer\neff (pick random (-3) to (3))\n\ndefine eff (x)\nset [-1 v] to [1]\nset [color v] effect to (0)\nset [ghost v] effect to (pick random (40) to (80))\nset [brightness v] effect to (0)\nset size to (pick random (60) to (120)) %\nforever\n    go to [front v] layer\n    change x by ((x) * (-1))\n    change y by (y)\n    change [y v] by (-2)\n    if <touching (_edge_ v)?> then\n        if <(-1) = [1]> then\n            set [-1 v] to [-1]\n        else\n            set [-1 v] to [1]\n        end\n    end\n    if <(y position) < [-170]> then\n        delete this clone\n    end\nend\n\n@REMOVE THIS SPRITE2\n\nwhen flag clicked\ngo to x: (0) y: (-30000)\nhide\nrepeat (100)\n    go to x: (pick random (100) to (200)) y: (-3000)\n    create clone of (_myself_ v)\n    wait (0.01) seconds\nend\n\nwhen I start as a clone\nset [y v] to (pick random (10) to (15))\nshow\ngo to [back v] layer\neff (pick random (-3) to (3))\n\ndefine eff (x)\nset [-1 v] to [1]\nset [color v] effect to (0)\nset [ghost v] effect to (pick random (40) to (80))\nset [brightness v] effect to (0)\nset size to (pick random (60) to (120)) %\nforever\n    go to [front v] layer\n    change x by ((x) * (-1))\n    change y by (y)\n    change [y v] by (-2)\n    if <touching (_edge_ v)?> then\n        if <(-1) = [1]> then\n            set [-1 v] to [-1]\n        else\n            set [-1 v] to [1]\n        end\n    end\n    if <(y position) < [-170]> then\n        delete this clone\n    end\nend\n\n@PTE Ultra+2\n\nwhen [timer v] > (TIMER)\nerase all\nPrint | Pos (0) (0) Size (20) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [10 FOLLOWERS!]\n\ndefine INTERNAL | calcWW (text) (cspace) (width) (space) (x) (offset)\ndelete all of [_temp0 v]\ndelete all of [_temp1 v]\ndelete all of [_temp2 v]\nset [_i3 v] to [1]\nset [_i4 v] to (space)\nset [_i5 v] to [0]\nset [_i8 v] to [0]\nset [_i9 v] to [0]\nrepeat (length of (text))\n    set [_i6 v] to (letter (_i3) of (text))\n    if <(_i6) = [ ]> then\n        add [1] to [_temp2 v]\n        if <((_i5) + (_i4)) > (width)> then\n            add ((_i9) - (1)) to [_temp0 v]\n            add ((x) + ((offset) * (_i5))) to [_temp1 v]\n            set [_i5 v] to (_i4)\n            set [_i4 v] to (space)\n            set [_i9 v] to ((_i8) + (1))\n        else\n            change [_i5 v] by (_i4)\n            set [_i4 v] to (space)\n            change [_i9 v] by ((_i8) + (1))\n        end\n        set [_i8 v] to [0]\n    else\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i6)?> then\n            switch costume to (_i6)\n            set [_i7 v] to (costume [number v])\n        else\n            set [_i7 v] to (item # of (_i6) in [_chars v])\n        end\n        if <not <(_i7) = [0]>> then\n            add (_i7) to [_temp2 v]\n            set [_i7 v] to ((item (_i7) of [_charwidths v]) + (cspace))\n            if <((_i4) + (_i7)) > (width)> then\n                add ((_i9) - (1)) to [_temp0 v]\n                add ((x) + ((offset) * (_i5))) to [_temp1 v]\n                set [_i5 v] to (_i4)\n                set [_i4 v] to ((space) + (_i7))\n                set [_i9 v] to ((_i8) + (1))\n                set [_i8 v] to [1]\n                add (item (last) of [_temp2 v]) to [_temp2 v]\n            else\n                change [_i4 v] by (_i7)\n                change [_i8 v] by (1)\n            end\n        end\n    end\n    change [_i3 v] by (1)\nend\nif <(_i8) = [0]> then\n    if <not <(_i9) = [0]>> then\n        add ((_i9) - (1)) to [_temp0 v]\n        add ((x) + ((offset) * (_i5))) to [_temp1 v]\n    end\nelse\n    if <((_i5) + (_i4)) > (width)> then\n        add ((_i9) - (1)) to [_temp0 v]\n        add ((x) + ((offset) * (_i5))) to [_temp1 v]\n        add (_i8) to [_temp0 v]\n        add ((x) + ((offset) * (_i4))) to [_temp1 v]\n    else\n        add ((_i9) + (_i8)) to [_temp0 v]\n        add ((x) + ((offset) * ((_i5) + (_i4)))) to [_temp1 v]\n    end\nend\nrepeat until <<not <(item (1) of [_temp0 v]) < [1]>> or <(length of [_temp0 v]) < [1]>>\n    delete (1) of [_temp0 v]\n    delete (1) of [_temp1 v]\nend\nrepeat until <<not <(item (last) of [_temp0 v]) < [1]>> or <(length of [_temp0 v]) < [1]>>\n    delete (last) of [_temp0 v]\n    delete (last) of [_temp1 v]\nend\n\ndefine Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\nSlow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\n\ndefine Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WSU (w) (s) (u) CSpace (cspace) Align (align) Text (text)\npen up\nset pen color to ((((65536) * (round (r))) + ((256) * (round (g)))) + (round (b)))\nset [_x v] to (x)\nset [_i0 v] to ((0.01) * (size))\nset [_i1 v] to ([abs v] of ((0.125) * ((w) * (size))) )\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round (_i1)) mod (2)) = [0]> and <not <(_i1) < [0.5]>>> then\n        set [_y v] to (round (y))\n    else\n        set [_y v] to (([floor v] of (y) ) + (0.5))\n    end\nelse\n    set [_y v] to (y)\nend\nif <(w) < [0]> then\n    set [_i2 v] to ((0.125) * (size))\nelse\n    set [_i2 v] to (_i1)\nend\nINTERNAL | printText (text) (_y) (_i0) ((width) * (_i0)) ([tan v] of (s) ) ((_i0) * (u)) (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)) (align) ([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) ((1) / (([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) + (1))) (_i1) ((_i1) + (1)) (((0.6) + ((0.4) * <([floor v] of ((u) / (100)) ) = [0]>)) * (_i1)) ((0.09375) * (size))\n\ndefine WW Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\nWW Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\n\ndefine WW Slow Print | Pos (x) (y) Size (size) Width (width) RGB (r) (g) (b) WW Width (ww width) WSU (w) (s) (u) CSpace (cspace) LSpace (lspace) Align (align) Text (text)\npen up\nset pen color to ((((65536) * (round (r))) + ((256) * (round (g)))) + (round (b)))\nset [_i0 v] to ((0.01) * (size))\nset [_i1 v] to ([abs v] of ((0.125) * ((w) * (size))) )\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round (_i1)) mod (2)) = [0]> and <not <(_i1) < [0.5]>>> then\n        set [_y v] to (round (y))\n    else\n        set [_y v] to (([floor v] of (y) ) + (0.5))\n    end\nelse\n    set [_y v] to (y)\nend\nif <(w) < [0]> then\n    set [_i2 v] to ((0.125) * (size))\nelse\n    set [_i2 v] to (_i1)\nend\nset [_i3 v] to (((100) / (size)) / (width))\nset [_i4 v] to ((_i3) * (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)))\nif <(align) = [r]> then\n    set [_i5 v] to ((-1) * (_i0))\nelse\n    if <(align) = [c]> then\n        set [_i5 v] to ((-0.5) * (_i0))\n    else\n        set [_i5 v] to [0]\n    end\nend\nset [_i5 v] to ((width) * (_i5))\nset [_i6 v] to ((item (1) of [_charwidths v]) + (_i4))\nINTERNAL | calcWW (text) (_i4) (((_i3) * (ww width)) + ((_i6) + (_i4))) (_i6) ((x) - ((_i5) * ((_i6) + (_i4)))) (_i5)\nINTERNAL | printWW (_i0) ((width) * (_i0)) ([tan v] of (s) ) ((_i0) * (u)) <not <(u) = [0]>> (((cspace) * ((0.475) * ((size) / ([log v] of (((size) + (1.01)) * ((size) + (1.01))) )))) + (_i2)) (round ((((-0.65) * ((lspace) * (size))) - (size)) - (_i2))) ([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) ((1) / (([ceiling v] of ((0.15) * ([sqrt v] of ((width) * ((size) * (size))) )) ) + (1))) (_i1) ((_i1) + (1)) (((0.6) + ((0.4) * <([floor v] of ((u) / (100)) ) = [0]>)) * (_i1)) ((0.09375) * (size))\n\ndefine INTERNAL | drawBezier (x2) (y2) (x3) (y3) (qual) (dt)\nINTERNAL | bezier (((x3) - ((2) * (x2))) + (x position)) ((2) * ((x2) - (x position))) (x position) (((y3) - ((2) * (y2))) + (y position)) ((2) * ((y2) - (y position))) (y position) (qual) (dt)\ngo to x: (x3) y: (y3)\n\ndefine INTERNAL | bezier (cx1) (cx2) (x1) (cy1) (cy2) (y1) (qual) (dt)\nset [_i4 v] to [0]\nrepeat (qual)\n    change [_i4 v] by (dt)\n    go to x: (((_i4) * (((_i4) * (cx1)) + (cx2))) + (x1)) y: (((_i4) * (((_i4) * (cy1)) + (cy2))) + (y1))\nend\n\ndefine Newlines | # of Lines (lines) Size (size) Weight (w) LSpace (lspace)\nif <(w) < [0]> then\n    change [_y v] by ((lines) * (round ((((-0.65) * ((lspace) * (size))) - (size)) - ((0.125) * (size)))))\nelse\n    change [_y v] by ((lines) * (round ((((-0.65) * ((lspace) * (size))) - (size)) - ((0.125) * ((w) * (size))))))\nend\nif <<(size) = (round (size))> and <not <(w) < [0]>>> then\n    if <<((round ((0.125) * ((w) * (size)))) mod (2)) = [0]> and <not <((0.125) * ((w) * (size))) < [0.5]>>> then\n        set [_y v] to (round (_y))\n    else\n        set [_y v] to (([floor v] of (_y) ) + (0.5))\n    end\nend\n\ndefine INTERNAL | printWW (height) (width) (slant) (underline) <hasundr> (cspace) (lspace) (bezqual) (bezdt) (weight) (dotweight) (underlwt) (underloffset)\nset [_i0 v] to [1]\nset [_i1 v] to [1]\nrepeat (length of [_temp0 v])\n    set [_x v] to (item (_i0) of [_temp1 v])\n    repeat (item (_i0) of [_temp0 v])\n        INTERNAL | printChar (item (_i1) of [_temp2 v]) (height) (width) (_x) (_y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n        change [_x v] by (cspace)\n        change [_i1 v] by (1)\n    end\n    change [_i1 v] by (1)\n    if <hasundr> then\n        set pen size to (underlwt)\n        go to x: ((((_x) - (cspace)) + ((slant) * (underline))) + (underloffset)) y: ((_y) + (underline))\n        pen down\n        set x to (((item (_i0) of [_temp1 v]) + ((slant) * (underline))) - (underloffset))\n        pen up\n    end\n    change [_y v] by (lspace)\n    change [_i0 v] by (1)\nend\nchange [_y v] by ((-1) * (lspace))\ndelete all of [_temp2 v]\n\ndefine INTERNAL | printText (text) (y) (height) (width) (slant) (underline) (space) (align) (bezqual) (bezdt) (weight) (dotweight) (underlwt) (underloffset)\nif <<(align) = [c]> or <(align) = [r]>> then\n    delete all of [_temp0 v]\n    set [_i0 v] to [1]\n    set [_i1 v] to [0]\n    repeat (length of (text))\n        set [_i2 v] to (letter (_i0) of (text))\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i2)?> then\n            switch costume to (_i2)\n            change [_i1 v] by (((width) * (item (costume [number v]) of [_charwidths v])) + (space))\n            add (costume [number v]) to [_temp0 v]\n        else\n            set [_i2 v] to (item # of (_i2) in [_chars v])\n            if <not <(_i2) = [0]>> then\n                change [_i1 v] by (((width) * (item (_i2) of [_charwidths v])) + (space))\n                add (_i2) to [_temp0 v]\n            end\n        end\n        change [_i0 v] by (1)\n    end\n    if <(align) = [c]> then\n        change [_x v] by ((-0.5) * ((_i1) - (space)))\n    else\n        change [_x v] by ((-1) * ((_i1) - (space)))\n    end\n    set [_i6 v] to (_x)\n    set [_i0 v] to [1]\n    repeat (length of [_temp0 v])\n        INTERNAL | printChar (item (_i0) of [_temp0 v]) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n        change [_x v] by (space)\n        change [_i0 v] by (1)\n    end\nelse\n    set [_i6 v] to (_x)\n    set [_i0 v] to [1]\n    repeat (length of (text))\n        set [_i7 v] to (letter (_i0) of (text))\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i7)?> then\n            switch costume to (_i7)\n            INTERNAL | printChar (costume [number v]) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n            change [_x v] by (space)\n        else\n            set [_i7 v] to (item # of (_i7) in [_chars v])\n            if <not <(_i7) = [0]>> then\n                INTERNAL | printChar (_i7) (height) (width) (_x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\n                change [_x v] by (space)\n            end\n        end\n        change [_i0 v] by (1)\n    end\nend\nif <not <(underline) = [0]>> then\n    set pen size to (underlwt)\n    go to x: ((((_x) - (space)) + ((slant) * (underline))) + (underloffset)) y: ((y) + (underline))\n    pen down\n    set x to (((_i6) + ((slant) * (underline))) - (underloffset))\n    pen up\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\nswitch costume to (sizebypass v)\nset size to (50000) %\nswitch costume to (pte ultra+ v)\n\ndefine INTERNAL | loadFont (font)\nset [_i0 v] to [1]\nrepeat until <(_i0) > (length of (font))>\n    set [_i1 v] to (letter (_i0) of (font))\n    if <[_chars v] contains (_i1)?> then\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n            switch costume to (_i1)\n            set [_i4 v] to (costume [number v])\n        else\n            set [_i4 v] to (item # of (_i1) in [_chars v])\n        end\n        if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n            switch costume to (_i1)\n            if <(costume [number v]) > [27]> then\n                set [_i2 v] to (item # of (join [_] (_i1)) in [_chardata v])\n                set [_i5 v] to (item (_i2) of [_chardata v])\n                replace item (_i2) of [_chardata v] with []\n                set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n                replace item (_i2) of [_chardata v] with (_i5)\n            else\n                set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n            end\n        else\n            set [_i3 v] to ((item # of (join [_] (_i1)) in [_chardata v]) + (1))\n        end\n    else\n        add (_i1) to [_chars v]\n        add [0] to [_charids v]\n        add [0] to [_charwidths v]\n        add (join [_] (_i1)) to [_chardata v]\n        set [_i3 v] to ((length of [_chardata v]) + (1))\n        set [_i4 v] to (length of [_chars v])\n    end\n    add [_] to [_chardata v]\n    change [_i0 v] by (2)\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    replace item (_i4) of [_charwidths v] with ((1) * (_i2))\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n        insert (round (_i2)) at (_i3) of [_chardata v] \n    else\n        replace item (_i3) of [_chardata v] with (round (_i2))\n    end\n    change [_i3 v] by (1)\n    repeat (round (_i2))\n        repeat (2)\n            set [_i2 v] to []\n            repeat until <(letter (_i0) of (font)) = [ ]>\n                set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                change [_i0 v] by (1)\n            end\n            change [_i0 v] by (1)\n            if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                insert ((1) * (_i2)) at (_i3) of [_chardata v] \n            else\n                replace item (_i3) of [_chardata v] with ((1) * (_i2))\n            end\n            change [_i3 v] by (1)\n        end\n        set [_i2 v] to []\n        repeat until <(letter (_i0) of (font)) = [ ]>\n            set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n            change [_i0 v] by (1)\n        end\n        change [_i0 v] by (1)\n        if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n            insert (round (_i2)) at (_i3) of [_chardata v] \n        else\n            replace item (_i3) of [_chardata v] with (round (_i2))\n        end\n        change [_i3 v] by (1)\n        repeat (round (_i2))\n            if <(letter (_i0) of (font)) = [b]> then\n                if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                    insert [b] at (_i3) of [_chardata v] \n                else\n                    replace item (_i3) of [_chardata v] with [b]\n                end\n                change [_i3 v] by (1)\n                change [_i0 v] by (2)\n                repeat (4)\n                    set [_i2 v] to []\n                    repeat until <(letter (_i0) of (font)) = [ ]>\n                        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                        change [_i0 v] by (1)\n                    end\n                    change [_i0 v] by (1)\n                    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                        insert ((1) * (_i2)) at (_i3) of [_chardata v] \n                    else\n                        replace item (_i3) of [_chardata v] with ((1) * (_i2))\n                    end\n                    change [_i3 v] by (1)\n                end\n            else\n                repeat (2)\n                    set [_i2 v] to []\n                    repeat until <(letter (_i0) of (font)) = [ ]>\n                        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                        change [_i0 v] by (1)\n                    end\n                    change [_i0 v] by (1)\n                    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                        insert ((1) * (_i2)) at (_i3) of [_chardata v] \n                    else\n                        replace item (_i3) of [_chardata v] with ((1) * (_i2))\n                    end\n                    change [_i3 v] by (1)\n                end\n            end\n        end\n    end\n    set [_i2 v] to []\n    repeat until <(letter (_i0) of (font)) = [ ]>\n        set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n        change [_i0 v] by (1)\n    end\n    change [_i0 v] by (1)\n    if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n        insert (round (_i2)) at (_i3) of [_chardata v] \n    else\n        replace item (_i3) of [_chardata v] with (round (_i2))\n    end\n    change [_i3 v] by (1)\n    repeat (round (_i2))\n        repeat (2)\n            set [_i2 v] to []\n            repeat until <(letter (_i0) of (font)) = [ ]>\n                set [_i2 v] to (join (_i2) (letter (_i0) of (font)))\n                change [_i0 v] by (1)\n            end\n            change [_i0 v] by (1)\n            if <(letter (1) of (item (_i3) of [_chardata v])) = [_]> then\n                insert ((1) * (_i2)) at (_i3) of [_chardata v] \n            else\n                replace item (_i3) of [_chardata v] with ((1) * (_i2))\n            end\n            change [_i3 v] by (1)\n        end\n    end\n    delete (last) of [_chardata v]\nend\nset [_i0 v] to [1]\nrepeat (length of [_chars v])\n    set [_i1 v] to (item (_i0) of [_chars v])\n    if < [abcdefghijklmnopqrstuvwxyz] contains (_i1)?> then\n        switch costume to (_i1)\n        if <(costume [number v]) > [27]> then\n            set [_i2 v] to (item # of (join [_] (_i1)) in [_chardata v])\n            set [_i3 v] to (item (_i2) of [_chardata v])\n            replace item (_i2) of [_chardata v] with []\n            replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n            replace item (_i2) of [_chardata v] with (_i3)\n        else\n            replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n        end\n    else\n        replace item (_i0) of [_charids v] with ((item # of (join [_] (_i1)) in [_chardata v]) + (2))\n    end\n    change [_i0 v] by (1)\nend\n\ndefine Import Font | Data (font data)\nset [_i0 v] to [1]\nrepeat until <(letter (_i0) of (font data)) = [{]>\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nrepeat until <(letter (_i0) of (font data)) = [\[]>\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nset [_i1 v] to []\nrepeat until <(letter (_i0) of (font data)) = [\]]>\n    set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n    change [_i0 v] by (1)\nend\nchange [_i0 v] by (1)\nset [_i6 v] to (_i1)\ndelete all of [_temp0 v]\nchange [_i0 v] by (1)\nrepeat until <<(letter (_i0) of (font data)) = [\[]> or <(letter (_i0) of (font data)) = [}]>>\n    change [_i0 v] by (1)\nend\nrepeat until <(letter (_i0) of (font data)) = [}]>\n    change [_i0 v] by (1)\n    delete all of [_temp1 v]\n    add (letter (_i0) of (font data)) to [_temp0 v]\n    change [_i0 v] by (2)\n    set [_i1 v] to []\n    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\]]>>\n        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n        change [_i0 v] by (1)\n    end\n    add (_i1) to [_temp0 v]\n    set [_i2 v] to ((length of [_temp0 v]) + (1))\n    set [_i3 v] to [0]\n    repeat until <<(letter (_i0) of (font data)) = [\(]> or <(letter (_i0) of (font data)) = [\]]>>\n        change [_i0 v] by (1)\n    end\n    repeat until <(letter (_i0) of (font data)) = [\]]>\n        set [_i4 v] to ((length of [_temp0 v]) + (3))\n        set [_i5 v] to [0]\n        repeat until <(letter (_i0) of (font data)) = [\)]>\n            change [_i0 v] by (1)\n            if <(letter (_i0) of (font data)) = [b]> then\n                add [b] to [_temp0 v]\n                change [_i0 v] by (1)\n                repeat (4)\n                    change [_i0 v] by (1)\n                    set [_i1 v] to []\n                    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\)]>>\n                        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n                        change [_i0 v] by (1)\n                    end\n                    add (_i1) to [_temp0 v]\n                end\n            else\n                change [_i0 v] by (-1)\n                repeat (2)\n                    change [_i0 v] by (1)\n                    set [_i1 v] to []\n                    repeat until <<<(letter (_i0) of (font data)) = [,]> or <(letter (_i0) of (font data)) = [;]>> or <(letter (_i0) of (font data)) = [\)]>>\n                        set [_i1 v] to (join (_i1) (letter (_i0) of (font data)))\n                        change [_i0 v] by (1)\n                    end\n                    add (_i1) to [_temp0 v]\n                end\n            end\n            change [_i5 v] by (1)\n        end\n        if <(_i5) = [1]> then\n            add (item ((length of [_temp0 v]) - (1)) of [_temp0 v]) to [_temp1 v]\n            add (item (last) of [_temp0 v]) to [_temp1 v]\n            delete (last) of [_temp0 v]\n            delete (last) of [_temp0 v]\n        else\n            insert ((_i5) - (1)) at (_i4) of [_temp0 v] \n            change [_i3 v] by (1)\n        end\n        repeat until <<(letter (_i0) of (font data)) = [\(]> or <(letter (_i0) of (font data)) = [\]]>>\n            change [_i0 v] by (1)\n        end\n    end\n    insert (_i3) at (_i2) of [_temp0 v] \n    insert (round ((length of [_temp1 v]) / (2))) at (1) of [_temp1 v] \n    repeat (length of [_temp1 v])\n        add (item (1) of [_temp1 v]) to [_temp0 v]\n        delete (1) of [_temp1 v]\n    end\n    repeat until <<(letter (_i0) of (font data)) = [\[]> or <(letter (_i0) of (font data)) = [}]>>\n        change [_i0 v] by (1)\n    end\nend\nadd [] to [_temp0 v]\nset [_i0 v] to (item # of (_i6) in [_fonts v])\nif <((_i0) mod (2)) = [1]> then\n    replace item ((_i0) + (1)) of [_fonts v] with (_temp0)\nelse\n    add (_i6) to [_fonts v]\n    add (_temp0) to [_fonts v]\nend\ndelete all of [_temp0 v]\n\ndefine Load Font | Name (font)\nset [_i0 v] to (item # of (font) in [_fonts v])\nif <((_i0) mod (2)) = [1]> then\n    INTERNAL | loadFont (item ((_i0) + (1)) of [_fonts v])\nend\n\ndefine Reset Character Data\ndelete all of [_chars v]\ndelete all of [_charids v]\ndelete all of [_charwidths v]\ndelete all of [_chardata v]\nset [_i0 v] to [1]\nrepeat (53)\n    set [_i1 v] to (letter (_i0) of [ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ])\n    add (_i1) to [_chars v]\n    add ((length of [_chardata v]) + (3)) to [_charids v]\n    add [0] to [_charwidths v]\n    add (join [_] (_i1)) to [_chardata v]\n    add [0] to [_chardata v]\n    change [_i0 v] by (1)\nend\n\ndefine INTERNAL | printChar (num) (height) (width) (x) (y) (slant) (bezqual) (bezdt) (weight) (dotweight)\nchange [_x v] by ((width) * (item (num) of [_charwidths v]))\nset [_i3 v] to (item (num) of [_charids v])\nset pen size to (weight)\nrepeat (item ((_i3) - (1)) of [_chardata v])\n    set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n    go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n    pen down\n    change [_i3 v] by (3)\n    repeat (item ((_i3) - (1)) of [_chardata v])\n        if <(item (_i3) of [_chardata v]) = [b]> then\n            set [_i4 v] to ((height) * (item ((_i3) + (2)) of [_chardata v]))\n            set [_i5 v] to ((height) * (item ((_i3) + (4)) of [_chardata v]))\n            INTERNAL | drawBezier ((x) + (((width) * (item ((_i3) + (1)) of [_chardata v])) + ((slant) * (_i4)))) ((y) + (_i4)) ((x) + (((width) * (item ((_i3) + (3)) of [_chardata v])) + ((slant) * (_i5)))) ((y) + (_i5)) (bezqual) (bezdt)\n            change [_i3 v] by (5)\n        else\n            set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n            go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n            change [_i3 v] by (2)\n        end\n    end\n    pen up\nend\nset pen size to (dotweight)\nchange [_i3 v] by (1)\nrepeat (item ((_i3) - (1)) of [_chardata v])\n    set [_i4 v] to ((height) * (item ((_i3) + (1)) of [_chardata v]))\n    go to x: ((x) + (((width) * (item (_i3) of [_chardata v])) + ((slant) * (_i4)))) y: ((y) + (_i4))\n    pen down\n    pen up\n    change [_i3 v] by (2)\nend\n\nwhen flag clicked\nerase all\nReset Character Data\nLoad Font | Name [Parabolic]\nwait (7) seconds\nerase all\nSlow Print | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [SquareXYZ]\nwait (5) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [SquareXY]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [SquareX]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Square]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Squar]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Squa]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Squ]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [Sq]\nwait (0.1) seconds\nerase all\nPrint | Pos (0) (-125) Size (25) Width (1) RGB (255) (255) (255) WSU (1) (0) (0) CSpace (1) Align [c] Text [S]\nwait (0.1) seconds\nerase all\n\n
WASD - move 移動 (zqsd)\nSPACE - jump ジャンプ\nARROW KEYS or MOUSE - rotate camera\n矢印キーまたはマウス - カメラを回転\nPress top right button to enable MOBILE MODE\nPress top left button to switch WASD and ARROW KEYS\n\n(japanese is translated)