Source Code - A Platformer hacked!
@Stage\n\nwhen I receive [green flag v]\nset volume to ((VOLUME LEVEL) / (2)) %\nswitch backdrop to (white v)\nset [song v] to [1]\n\nwhen I receive [main menu v]\nswitch backdrop to (gray v)\n\nwhen [m v] key pressed\n\nset [mouse v] to (join (round ((SCROLL_X) + (mouse x))) (join [/] (round ((SCROLL_Y) + (mouse y)))))\nshow variable [mouse v]\n\nwhen I receive [start music v]\nif <(START MUSIC) = [1]> then\n    broadcast (Notify Music Banner v)\n    repeat until <(START MUSIC) = [0]>\n        play sound (Song) until done\n        set [song v] to (((Song) + (1)) mod ((VOLUME LEVEL) / (2)))\n        broadcast (Notify Music Banner v)\n    end\nelse\n    stop all sounds\n    set [song v] to (((Song) + (1)) mod (5))\nend\n\nwhen I receive [adjust volume level v]\nset volume to ((VOLUME LEVEL) / (2)) %\n\nwhen [n v] key pressed\nstop all sounds\nif <(START MUSIC) = [0]> then\n    set [start music v] to [1]\n    broadcast (Start Music v)\nend\nset [song v] to (((Song) + (1)) mod (5))\nbroadcast (Notify Music Banner v)\n\nwhen I receive [fade out volume v]\nrepeat (30)\n    set volume to (((0) - (volume)) / (30)) %\n    wait (.1) seconds\nend\nset volume to (0) %\n\nwhen [up arrow v] key pressed\nif <not <key (up arrow v) pressed?>> then\n    set [scroll index v] to (((SCROLL INDEX) + (1)) mod (length of [sandbox - placeable blocks v]))\nend\n\nwhen [down arrow v] key pressed\nif <not <key (down arrow v) pressed?>> then\n    set [scroll index v] to (((SCROLL INDEX) + (-1)) mod (length of [sandbox - placeable blocks v]))\nend\n\n@blank\n\n@note player\n\nwhen I start as a clone\nplay note ((note)) for (duration) beats\ndelete this clone\n\ndefine Play note (note) (duration)\nset [note v] to (note)\nset [duration v] to (duration)\ncreate clone of (_myself_ v)\n\nwhen I receive [play note v]\nPlay note (NOTE) (DURATION)\n\n@Sparky\n\ndefine Create Sparky (x) (y) type: (type)\nset [brightness v] to [0]\nset [master v] to [sparks]\nif <(type) = [1]> then\n    set [spark x v] to (x)\n    set [spark y v] to (y)\nelse\n    if <(type) = [2]> then\n        set [spark mom x v] to (x)\n        set [spark mom y v] to (y)\n    else\n        set [spark dad x v] to (x)\n        set [spark dad y v] to (y)\n    end\nend\nset [x v] to (x)\nset [y v] to (y)\nset [target x v] to (x)\nset [target y v] to (y)\ngo to [front v] layer\nswitch costume to (spark2 v)\nset size to (10) %\nset [type v] to (type)\nrepeat (35)\n    set [delay v] to (pick random (5) to (15))\n    create clone of (_myself_ v)\nend\nclear graphic effects\nswitch costume to (spark v)\nset size to (100) %\ngo [backward v] (10) layers\nset [delay v] to [20]\nset [master v] to [head]\ncreate clone of (_myself_ v)\nset [master v] to [true]\n\nwhen I receive [tick v]\nif <(type) = [1]> then\n    set [color v] effect to (0)\nelse\n    if <(type) = [2]> then\n        set [color v] effect to (70)\n    else\n        set [color v] effect to (160)\n    end\nend\nif <(master) = [sparks]> then\n    go to x: ((x) - (SCROLL_X)) y: ((y) - (SCROLL_Y))\n    if <<([abs v] of ((x position) - ((x) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((y) - (SCROLL_Y))) ) < [1]>> then\n        show\n    else\n        hide\n    end\n    change [x v] by (((target x) - (x)) / (delay))\n    change [y v] by (((target y) - (y)) / (delay))\n    change [brightness v] by (((target brightness) - (brightness)) / (delay))\n    set [brightness v] effect to (brightness)\n    if <(type) = [1]> then\n        if <<([sqrt v] of ((((x) - (target x)) * ((x) - (target x))) + (((y) - (target y)) * ((y) - (target y)))) ) < [5]> or <([sqrt v] of ((((x) - (SPARK X)) * ((x) - (SPARK X))) + (((y) - (SPARK Y)) * ((y) - (SPARK Y)))) ) > [30]>> then\n            set [target brightness v] to (pick random (-30) to (30))\n            set [target x v] to ((SPARK X) + (([sin v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n            set [target y v] to ((SPARK Y) + (([cos v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n        end\n    else\n        if <(type) = [2]> then\n            if <<([sqrt v] of ((((x) - (target x)) * ((x) - (target x))) + (((y) - (target y)) * ((y) - (target y)))) ) < [5]> or <([sqrt v] of ((((x) - (SPARK MOM X)) * ((x) - (SPARK MOM X))) + (((y) - (SPARK MOM Y)) * ((y) - (SPARK MOM Y)))) ) > [30]>> then\n                set [target brightness v] to (pick random (-30) to (30))\n                set [target x v] to ((SPARK MOM X) + (([sin v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n                set [target y v] to ((SPARK MOM Y) + (([cos v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n            end\n        else\n            if <<([sqrt v] of ((((x) - (target x)) * ((x) - (target x))) + (((y) - (target y)) * ((y) - (target y)))) ) < [5]> or <([sqrt v] of ((((x) - (SPARK DAD X)) * ((x) - (SPARK DAD X))) + (((y) - (SPARK DAD Y)) * ((y) - (SPARK DAD Y)))) ) > [30]>> then\n                set [target brightness v] to (pick random (-30) to (30))\n                set [target x v] to ((SPARK DAD X) + (([sin v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n                set [target y v] to ((SPARK DAD Y) + (([cos v] of (pick random (0) to (360)) ) * (pick random (10) to (30))))\n            end\n        end\n    end\nelse\n    if <(master) = [head]> then\n        if <(type) = [1]> then\n            Read Comments\n        end\n        change [blink elapsed time v] by (1)\n        if <(blink elapsed time) > ((blink delay) - (4))> then\n            Animate [31234] [1]\n        end\n        if <(blink elapsed time) > (blink delay)> then\n            switch costume to (spark v)\n            set [blink elapsed time v] to [0]\n            set [blink delay v] to (pick random (50) to (150))\n        end\n        if <(type) = [1]> then\n            go to x: ((SPARK X) - (SCROLL_X)) y: ((SPARK Y) - (SCROLL_Y))\n            if <<([abs v] of ((x position) - ((SPARK X) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((SPARK Y) - (SCROLL_Y))) ) < [1]>> then\n                show\n                set [sparky found v] to [1]\n            else\n                hide\n            end\n            if <(SPARKY FOUND) = [1]> then\n                change [spark x v] by (((target x) - (SPARK X)) / (delay))\n                change [spark y v] by ((((target y) + (75)) - (SPARK Y)) / (delay))\n                if <(distance to [scratch cat v]) > [150]> then\n                    set [target x v] to ((PLAYER X) + (([sin v] of (pick random (-10) to (10)) ) * (pick random (30) to (60))))\n                    set [target y v] to ((PLAYER Y) + (([cos v] of (pick random (-10) to (10)) ) * (pick random (30) to (60))))\n                end\n            end\n        else\n            if <(type) = [2]> then\n                go to x: ((SPARK MOM X) - (SCROLL_X)) y: ((SPARK MOM Y) - (SCROLL_Y))\n                if <<([abs v] of ((x position) - ((SPARK MOM X) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((SPARK MOM Y) - (SCROLL_Y))) ) < [1]>> then\n                    show\n                else\n                    hide\n                end\n                change [spark mom x v] by (((target x) - (SPARK MOM X)) / (delay))\n                change [spark mom y v] by ((((target y) + (75)) - (SPARK MOM Y)) / (delay))\n                if <(distance to [scratch cat v]) > [150]> then\n                    set [target x v] to ((PLAYER X) + (([sin v] of (pick random (-60) to (-50)) ) * (pick random (30) to (60))))\n                    set [target y v] to ((PLAYER Y) + (([cos v] of (pick random (-60) to (-50)) ) * (pick random (30) to (60))))\n                end\n            else\n                go to x: ((SPARK DAD X) - (SCROLL_X)) y: ((SPARK DAD Y) - (SCROLL_Y))\n                if <<([abs v] of ((x position) - ((SPARK DAD X) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((SPARK DAD Y) - (SCROLL_Y))) ) < [1]>> then\n                    show\n                else\n                    hide\n                end\n                change [spark dad x v] by (((target x) - (SPARK DAD X)) / (delay))\n                change [spark dad y v] by ((((target y) + (75)) - (SPARK DAD Y)) / (delay))\n                if <(distance to [scratch cat v]) > [150]> then\n                    set [target x v] to ((PLAYER X) + (([sin v] of (pick random (50) to (60)) ) * (pick random (30) to (60))))\n                    set [target y v] to ((PLAYER Y) + (([cos v] of (pick random (50) to (60)) ) * (pick random (30) to (60))))\n                end\n            end\n        end\n    end\nend\n\nbroadcast (DEV - Refresh Objects v) and wait\n\nwhen I receive [set up v]\nset volume to (50) %\nhide\nset [master v] to []\nset [sparky speaking v] to [false]\nif  then\n    delete this clone\nend\nif <<(SCREEN) = [Main Menu]> and <(SPARKY FOUND) = [1]>> then\n    Create Sparky [-150] [150] type: [1]\nelse\n    if <(SCREEN) = [Level 2]> then\n        Create Sparky [1100] [-600] type: [1]\n    else\n        if <<<(SCREEN) = [Java]> or < (SCREEN) contains [Level]?>> and <(SPARKY FOUND) = [1]>> then\n            Create Sparky [0] [150] type: [1]\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\ndefine // (comment)\n\ndefine Read Comments\nFind Nearest Checkpoint\nif <<(nearest target) > [0]> and <not <[comments said v] contains (nearest target)?>>> then\n    if <(sparky speaking) = [false]> then\n        set [sparky quote v] to (item (nearest target) of [comments v])\n        broadcast (notify sparky v)\n        add (nearest target) to [comments said v]\n    end\nend\n\ndefine Get Distance From (x,y) (x1) (y1) To (x,y) (x2) (y2)\nset [distance v] to ([sqrt v] of ((((y2) - (y1)) * ((y2) - (y1))) + (((x2) - (x1)) * ((x2) - (x1)))) )\n\ndefine Find Nearest Checkpoint\nset [nearest target distance v] to [99999999]\nset [nearest target v] to [0]\nset [t v] to [0]\nrepeat (length of [comments v])\n    change [t v] by (1)\n    if <(item (((t) * (3)) - (2)) of [comment targets v]) = (SCREEN)> then\n        Get Distance From (x,y) (PLAYER X) (PLAYER Y) To (x,y) (item (((t) * (3)) - (1)) of [comment targets v]) (item ((t) * (3)) of [comment targets v])\n        if <(distance) < (nearest target distance)> then\n            set [nearest target v] to (t)\n            set [nearest target distance v] to (distance)\n        end\n    end\nend\nif <(nearest target distance) > [200]> then\n    set [nearest target v] to [0]\nend\n\nwhen I receive [play game v]\ndelete all of [comments said v]\ndelete all of [comments v]\ndelete all of [comment targets v]\n// [First encounter]\nadd [Level 2] to [comment targets v]\nadd [1200] to [comment targets v]\nadd [-550] to [comment targets v]\nadd [Finally!  I was wandering around and got lost!  Can you find a way out?] to [comments v]\n// [Tac & Toc]\nadd [Level 2] to [comment targets v]\nadd [1934] to [comment targets v]\nadd [-550] to [comment targets v]\nadd [Watch out!  You should never trust anyone that happy...] to [comments v]\n// [Main]\nadd [Main Menu] to [comment targets v]\nadd [2500] to [comment targets v]\nadd [0] to [comment targets v]\nadd [I'm almost home!  I can see it...] to [comments v]\n// [Bounce off of Enemies]\nadd [Level 3] to [comment targets v]\nadd [0] to [comment targets v]\nadd [0] to [comment targets v]\nadd [Jump on that spring on their heads to jump higher...] to [comments v]\n// [Mmm, pancakes!]\nadd [Level 3] to [comment targets v]\nadd [1150] to [comment targets v]\nadd [350] to [comment targets v]\nadd [Mmm, pancakes!] to [comments v]\n// [More pancakes]\nadd [Level 3] to [comment targets v]\nadd [1750] to [comment targets v]\nadd [400] to [comment targets v]\nadd [More pancakes...  Do I see a theme?] to [comments v]\n// [More pancakes!]\nadd [Level 3] to [comment targets v]\nadd [2200] to [comment targets v]\nadd [-350] to [comment targets v]\nadd [Are you getting hungry...] to [comments v]\n// [Not fit]\nadd [Level 4] to [comment targets v]\nadd [0] to [comment targets v]\nadd [0] to [comment targets v]\nadd [I don't think we'll fit through there...] to [comments v]\n// [Up and over]\nadd [Level 4] to [comment targets v]\nadd [450] to [comment targets v]\nadd [100] to [comment targets v]\nadd [Up and over!] to [comments v]\n// [Down]\nadd [Level 4] to [comment targets v]\nadd [2200] to [comment targets v]\nadd [400] to [comment targets v]\nadd [Down we go...] to [comments v]\n// [Excuse me]\nadd [Level 4] to [comment targets v]\nadd [2303] to [comment targets v]\nadd [0] to [comment targets v]\nadd [Do not attempt to make contact...  Just keep moving.] to [comments v]\n// [Excuse me]\nadd [Level 5] to [comment targets v]\nadd [1550] to [comment targets v]\nadd [150] to [comment targets v]\nadd [Place that block to shrink yourself so you can fit through there...] to [comments v]\n// [Excuse me]\nadd [Level 6] to [comment targets v]\nadd [1438] to [comment targets v]\nadd [41] to [comment targets v]\nadd [Yay!  I love parties...] to [comments v]\n// [Excuse me]\nadd [Level 7] to [comment targets v]\nadd [450] to [comment targets v]\nadd [900] to [comment targets v]\nadd [We made it!] to [comments v]\n\ndefine Animate (anim) (offset)\nset [t v] to ((length of (anim)) - (1))\nswitch costume to ((offset) + (letter ((([floor v] of ((TICK) / (letter (1) of (anim))) ) mod (t)) + (2)) of (anim)))\n\nwhen I receive [init sparks v]\nif <(master) = [true]> then\n    Create Sparky [400] [150] type: [2]\n    Create Sparky [400] [150] type: [3]\n    wait (.5) seconds\n    set [spark mom quote v] to [You're back!  We were so worried about you!]\n    broadcast (notify spark mom v)\n    wait (2.25) seconds\n    set [spark dad quote v] to [Thank you, brave adventurer, for bringing our son back.]\n    broadcast (notify spark dad v)\nend\n\nwhen I receive [load java v]\nhide\n\nwhen I receive [notify sparky v]\nif <(type) = [1]> then\n    if <(master) = [head]> then\n        start sound (pick random (1) to (5))\n        set [sparky speaking v] to [true]\n        say (SPARKY QUOTE) for (2) seconds\n        set [sparky speaking v] to [false]\n    end\nend\n\nwhen I receive [notify spark mom v]\nif <(type) = [2]> then\n    if <(master) = [head]> then\n        start sound (pick random (1) to (5))\n        set [sparky speaking v] to [true]\n        say (SPARK MOM QUOTE) for (2) seconds\n        set [sparky speaking v] to [false]\n    end\nend\n\nwhen I receive [notify spark dad v]\nif <(type) = [3]> then\n    if <(master) = [head]> then\n        start sound (pick random (1) to (5))\n        set [sparky speaking v] to [true]\n        say (SPARK DAD QUOTE) for (2) seconds\n        set [sparky speaking v] to [false]\n    end\nend\n\nwhen I receive [adjust volume level v]\nset volume to (VOLUME LEVEL) %\n\n@Scratch Cat\n\ndefine Animate (anim) (offset)\nset [t v] to ((length of (anim)) - (1))\nswitch costume to ((offset) + (item # of (letter ((([floor v] of ((TICK) / (letter (1) of (anim))) ) mod (t)) + (2)) of (anim)) in [code v]))\n\nwhen flag clicked\nset size to (100) %\nset [screen v] to [story - 1]\nbroadcast (Green Flag v)\nStory\nbroadcast (Play Game v) and wait\n\ndefine Tick\nset size to ((SIZE) * (SCALE)) %\nset [color v] effect to (COLOR EFFECT)\nswitch costume to (hitbox v)\nif <<key (w v) pressed?> or <key (up arrow v) pressed?>> then\n    set [yv v] to [12]\nend\nif <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n    point in direction (-90)\n    change [xv v] by (-2)\nelse\n    if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n        point in direction (90)\n        change [xv v] by (2)\n    end\nend\nif <(YV) > [-12]> then\n    change [yv v] by (-2)\nend\nMove X (xv)\nMove Y (YV)\nset [xv v] to ((xv) * (.8))\nif <(PLAYER Y) < [-1000]> then\n    set [exit v] to [die]\nend\nif < (xv) contains [e]?> then\n    set [xv v] to [0]\nend\nif <([abs v] of ((((PLAYER X) * (SCALE)) - (SCROLL_X)) / (8)) ) > [1]> then\n    change [scroll_x v] by ((((PLAYER X) * (SCALE)) - (SCROLL_X)) / (8))\nend\nif <([abs v] of (((((PLAYER Y) + (20)) * (SCALE)) - (SCROLL_Y)) / (8)) ) > [1]> then\n    change [scroll_y v] by (((((PLAYER Y) + (20)) * (SCALE)) - (SCROLL_Y)) / (8))\nend\nif <<(SCREEN) = [Main Menu]> and <([sqrt v] of ((((PORTAL X) - (PLAYER X)) * ((PORTAL X) - (PLAYER X))) + (((PORTAL Y) - (PLAYER Y)) * ((PORTAL Y) - (PLAYER Y)))) ) < [75]>> then\n    set [screen v] to [Java]\n    broadcast (Load Java v)\nend\nPosition\n\nwhen I receive [play game v]\nset [level v] to [1]\nset [tick v] to [0]\nforever\n    broadcast (Set Up v) and wait\n    repeat until <(EXIT) > []>\n        if <(LOADING) = [0]> then\n            if <(PAUSE) = [-1]> then\n                change [tick v] by (1)\n                Tick\n                Animate\n                erase all\n                set [blocks affecting x v] to [false]\n                broadcast (Tick v) and wait\n            else\n                broadcast (Pause Tick v) and wait\n            end\n        end\n    end\n    if <(EXIT) = [die]> then\n        set rotation style [all around v]\n        set [die - y vel v] to [15]\n        repeat until <(y position) < [-175]>\n            change y by (die - y vel)\n            turn right (5) degrees\n            if <(die - y vel) > [-20]> then\n                change [die - y vel v] by (-1)\n            end\n        end\n    else\n        if <(EXIT) = [credits]> then\n            stop [this script v]\n        end\n    end\nend\n\ndefine Reset\nhide\nset rotation style [left-right v]\nset [color effect v] to [0]\nset [size v] to [100]\nif <not <(SCREEN) = [sandbox]>> then\n    set [scale v] to [1]\nend\nif <(SCREEN) = [story - 6]> then\n    set [player x v] to [-67]\n    set [player y v] to [0]\n    set [level v] to [0]\nelse\n    if <(SCREEN) = [Main Menu]> then\n        set [player x v] to [0]\n        set [player y v] to [50]\n        if <(first time in menu) = [1]> then\n            set [first time in menu v] to [0]\n            broadcast (Start Music v)\n        end\n    else\n        set [player x v] to [0]\n        set [player y v] to [50]\n    end\nend\npoint in direction (90)\nset [exit v] to []\nset [scroll_x v] to [0]\nset [scroll_y v] to [0]\nset [xv v] to [0]\nset [yv v] to [0]\nset [in air v] to [5]\nset size to (100) %\nclear graphic effects\nif <not <(SCREEN) = [Intro]>> then\n    show\nend\nPosition\n\ndefine Move Y (y)\nchange [in air v] by (1)\nchange [player y v] by (y)\nPosition\nif <touching (blocks v)?> then\n    set [n v] to [0]\n    repeat until <<not <touching (blocks v)?>> or <(n) = [50]>>\n        if <(y) > [0]> then\n            change [player y v] by (-1)\n        else\n            change [player y v] by (1)\n            set [in air v] to [0]\n        end\n        change [n v] by (1)\n        Position\n    end\n    set [yv v] to [0]\nend\n\ndefine Move X (x)\nchange [player x v] by (x)\nPosition\nif <touching (blocks v)?> then\n    repeat (10)\n        change [player y v] by (1)\n        Position\n        if <not <touching (blocks v)?>> then\n            stop [this script v]\n        end\n    end\n    change [player y v] by (-10)\n    Position\n    set [n v] to [0]\n    repeat until <<not <touching (blocks v)?>> or <(n) = [20]>>\n        if <(x) > [0]> then\n            change [player x v] by (-2)\n        else\n            change [player x v] by (2)\n        end\n        change [n v] by (1)\n        Position\n    end\nend\n\ndefine Story\npoint in direction (90)\ngo to x: (0) y: (0)\nshow\nswitch costume to (old cat v)\nwait (2) seconds\nset [pixelate v] effect to (50)\nset [whirl v] effect to (50)\nwait (.05) seconds\nclear graphic effects\nwait (.1) seconds\nset [pixelate v] effect to (50)\nset [whirl v] effect to (50)\nwait (.15) seconds\nclear graphic effects\nwait (.1) seconds\nset [pixelate v] effect to (50)\nset [whirl v] effect to (50)\nwait (.05) seconds\nclear graphic effects\nwait (.1) seconds\nrepeat (10)\n    change [brightness v] effect by (5)\n    change [pixelate v] effect by (5)\nend\nswitch costume to (run-09 v)\ngo to x: (-30) y: (0)\nrepeat (10)\n    change [brightness v] effect by (-5)\n    change [pixelate v] effect by (-5)\n    change x by (3)\n    next costume\n    if <(costume [number v]) > [25]> then\n        switch costume to (run-01 v)\n    end\nend\nswitch costume to (stand - smile look forward v)\nwait (1) seconds\nswitch costume to (turn-01 v)\nwait (1) seconds\nswitch costume to (stand - smile look forward v)\nwait (1) seconds\nswitch costume to (run-01 v)\nrepeat until <(x position) > [240]>\n    change x by (8)\n    next costume\n    if <(costume [number v]) > [25]> then\n        switch costume to (run-01 v)\n    end\nend\nhide\nwait (1) seconds\nset [screen v] to [story - 2]\ngo to x: (-240) y: (0)\nwait (1) seconds\nshow\nrepeat until <(x position) > [0]>\n    change x by (8)\n    next costume\n    if <(costume [number v]) > [25]> then\n        switch costume to (run-01 v)\n    end\nend\nswitch costume to (stand - smile look forward v)\nwait (.5) seconds\nset [screen v] to [story - 3]\nswitch costume to (suprised v)\nplay sound [Meow v] until done\nswitch costume to (stand - frown v)\nwait (1) seconds\nswitch costume to (run_j1 v)\nrepeat (10)\n    change y by (((40) - (y position)) / (5))\nend\nswitch costume to (run_j2 v)\nrepeat (10)\n    change y by (((-5) - (y position)) / (3))\nend\nset y to (0)\nswitch costume to (stand - smile look down v)\nset [screen v] to [story - 4]\nplay sound [Meow v] until done\nswitch costume to (stand - smile look forward v)\nwait (.5) seconds\nset [screen v] to [story - 5]\nrepeat (25)\n    change x by (-3)\nend\nset [screen v] to [story - 6]\n\ndefine Position\ngo to x: (((PLAYER X) * (SCALE)) - (SCROLL_X)) y: (((PLAYER Y) * (SCALE)) - (SCROLL_Y))\n\ndefine Animate\nif <(YV) > [0]> then\n    Animate [1a] [7]\nelse\n    if <(YV) < [0]> then\n        Animate [1a] [8]\n    else\n        if <<(YV) = [0]> and <(last yv) = [0]>> then\n            if <([abs v] of (xv) ) > [.9]> then\n                Animate [2abcdefghijklmnop] [9]\n            else\n                switch costume to (stand - smile look forward v)\n            end\n        else\n            switch costume to (run_j2 v)\n        end\n    end\nend\nset [last yv v] to (YV)\n\nwhen I receive [main menu v]\nset [exit v] to [screen change]\nset [scroll_x v] to [5]\nset [scroll_y v] to [60]\n\nwhen I receive [notify v]\nsay (NOTIFICATION) for (2) seconds\n\nwhen I receive [green flag v]\nrepeat until <(SCREEN) = [story - 6]>\n    if <key (space v) pressed?> then\n        stop [other scripts in sprite v]\n        set [screen v] to [Intro]\n        hide\n        broadcast (Transition v) and wait\n        broadcast (panther__ Intro v) and wait\n        wait (4) seconds\n        set [screen v] to [Main Menu]\n        broadcast (Main Menu v) and wait\n        broadcast (Loading Screen v) and wait\n        broadcast (Play Game v) and wait\n        clear graphic effects\n    end\nend\n\nset [levels completed v] to [0]\nset [sparky found v] to [0]\nset [inventory discovered v] to [0]\ndelete all of [sandbox level v]\n\nwhen I receive [dev - refresh objects v]\nset [dev - stored x v] to (PLAYER X)\nset [dev - stored y v] to (PLAYER Y)\nset [dev - store sparky found v] to (SPARKY FOUND)\nset [dev - stored size v] to (size)\nbroadcast (Set Up v) and wait\nset [player x v] to (DEV - stored x)\nset [player y v] to (DEV - stored y)\nset [scroll_x v] to (DEV - stored x)\nset [scroll_y v] to (DEV - stored y)\nset [sparky found v] to (DEV - store sparky found)\nset size to (DEV - stored size) %\n\nwhen I receive [panther__ intro v]\nhide\n\nwhen [p v] key pressed\nif <(CONFIRMATION DIALOG ACTIVE) = [0]> then\n    set [pause v] to ((PAUSE) * (-1))\nend\n\nwhen I receive [adjust volume level v]\nset volume to (VOLUME LEVEL) %\n\nwhen flag clicked\nset [first time in menu v] to [1]\n\nset [scale v] to [.1]\n\nwhen I receive [set up v]\nReset\n\n@Blocks\n\nwhen I receive [green flag v]\nset [last tick v] to [0]\ngo to x: (0) y: (-120)\nhide\nset [ghost v] effect to (100)\nwait until <(SCREEN) = [story - 2]>\nshow\nswitch costume to (start start sound meow v)\nrepeat (10)\n    change y by (4)\n    change [ghost v] effect by (-10)\nend\nwait until <(SCREEN) = [story - 3]>\nswitch costume to (running - start sound meow v)\nwait (.85) seconds\nswitch costume to (start start sound meow v)\nwait until <(SCREEN) = [story - 4]>\nswitch costume to (running - start sound meow v)\nwait (.85) seconds\nswitch costume to (start start sound meow v)\nwait until <(SCREEN) = [story - 5]>\nrepeat (25)\n    change x by (-3)\nend\nwait until <(SCREEN) = [story - 6]>\nstop [other scripts in sprite v]\nhide\nCreate Block [1] [-75] [-80] appear: [1] length of action: [25] requires key press: [] unlock after: [] decaying: []\nCreate Block [2] [200] [-80] appear: [0] length of action: [1] requires key press: [] unlock after: [] decaying: []\n\nwhen I start as a clone\nchange [clone placement index v] by (1)\nset [clone index v] to (CLONE PLACEMENT INDEX)\nset [original y v] to (y)\nset [effect v] to [0]\nif <(appear) = [0]> then\n    if <<([abs v] of ((x) - (SCROLL_X)) ) < [350]> and <([abs v] of ((y) - (SCROLL_Y)) ) < [250]>> then\n        show\n        switch costume to (((id) * (2)) - (1))\n        set [ghost v] effect to (100)\n        repeat (10)\n            Position\n            change y by (4)\n            change [ghost v] effect by (-10)\n        end\n    else\n        hide\n    end\n    set [appear v] to [1]\nend\nclear graphic effects\n\ndefine Create Block (id) (x) (y) appear: (appear) length of action: (length) requires key press: (key press) unlock after: (unlock) decaying: (decaying)\nset [id v] to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [state v] to [0]\nset [appear v] to (appear)\nset [length of action v] to (length)\nset [running v] to (length)\nset [required key press v] to (key press)\nset [decaying v] to (decaying)\nif <(unlock) > []> then\n    set [unlock at # v] to (unlock)\nelse\n    set [unlock at # v] to [-1]\nend\nset [master v] to [false]\ncreate clone of (_myself_ v)\nset [master v] to [true]\n\nwhen I receive [tick v]\nTick\n\ndefine Position\nset [translated x v] to (((x) * (SCALE)) - (SCROLL_X))\nset [translated y v] to (((y) * (SCALE)) - (SCROLL_Y))\ngo to x: (translated x) y: (translated y)\n\nwhen I receive [set up v]\nhide\nset [placing block toggle v] to [-1]\nset [placing block v] to [0]\nset [required key press v] to [false]\nset [touching scratch cat v] to [false]\nset [sandbox - grabbing block v] to [0]\nset [click released v] to [true]\nset [clone placement index v] to [0]\nif  then\n    delete this clone\nend\nif <(SCREEN) = [story - 6]> then\n    Create Block [1] [-75] [-80] appear: [1] length of action: [25] requires key press: [] unlock after: [] decaying: []\n    Create Block [2] [200] [-80] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\nelse\n    if <(SCREEN) = [Main Menu]> then\n        Create Block [35] [-630] [240] appear: [1] length of action: [5] requires key press: [] unlock after: [] decaying: []\n        Create Moving Block [28] [-320] [-90] appear: [1] length of action: [60] key press: [e] path: [-320] [200] [-320] [-90]\n        Create Block [45] [0] [245] appear: [1] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [4] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n        Create Block [5] [300] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [473] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [1] decaying: []\n        Create Block [12] [650] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [823] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [2] decaying: []\n        Create Block [26] [1000] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [1173] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [3] decaying: []\n        Create Block [29] [1350] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [1523] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [4] decaying: []\n        Create Block [33] [1700] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [1873] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [5] decaying: []\n        Create Block [36] [2050] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [2223] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [6] decaying: []\n        Create Block [40] [2400] [-90] appear: [0] length of action: [5] requires key press: [e] unlock after: [] decaying: []\n        Create Block [14] [2573] [33] appear: [0] length of action: [5] requires key press: [] unlock after: [7] decaying: []\n    else\n        if <(SCREEN) = [Level 1]> then\n            set [level v] to [1]\n            Create Block [11] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n            Create Block [6] [250] [30] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [7] [500] [110] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [8] [750] [190] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [9] [1000] [270] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [10] [1250] [350] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Moving Block [3] [1450] [350] appear: [0] length of action: [60] key press: [] path: [1450] [350] [2000] [350]\n            Create Block [10] [2200] [350] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [9] [2450] [270] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [8] [2700] [190] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [7] [2950] [110] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [6] [3200] [30] appear: [0] length of action: [7] requires key press: [] unlock after: [] decaying: []\n            Create Block [2] [3450] [30] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n        else\n            if <(SCREEN) = [Level 2]> then\n                set [level v] to [2]\n                Create Block [13] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [87] [-47] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [-84] [-47] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [16] [150] [-50] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [17] [350] [150] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [16] [550] [150] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [570] [520] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [640] [250] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [17] [750] [350] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [18] [1000] [350] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [1110] [350] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [1110] [450] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [15] [1110] [550] appear: [0] length of action: [3] requires key press: [] unlock after: [] decaying: []\n                Create Block [23] [920] [-800] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [20] [1100] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [21] [1300] [-800] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [22] [1500] [-775] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: [1]\n                Create Block [24] [1700] [-775] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: [1]\n                Create Block [25] [1900] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [17] [2150] [-725] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [19] [2400] [-700] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                Create Block [2] [2600] [-700] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n            else\n                if <(SCREEN) = [Level 3]> then\n                    set [level v] to [3]\n                    Create Block [27] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                    Create Block [25] [750] [250] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                    Create Block [20] [1050] [200] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                    Create Block [20] [1750] [500] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                    Create Moving Block [28] [2000] [-500] appear: [0] length of action: [140] key press: [e] path: [2000] [-500] [2000] [460]\n                    Create Block [20] [2225] [-460] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                    Create Block [2] [3050] [-150] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                else\n                    if <(SCREEN) = [Level 4]> then\n                        set [level v] to [4]\n                        Create Block [30] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [1] [-200] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [18] [-400] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [24] [175] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [15] [175] [75] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [15] [375] [15] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [24] [375] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [24] [575] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [15] [575] [75] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [22] [1100] [250] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                        Create Block [31] [1275] [306] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [32] [1500] [306] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [19] [1700] [306] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Moving Block [28] [2000] [0] appear: [0] length of action: [60] key press: [e] path: [2000] [0] [2000] [260]\n                        Create Block [24] [2250] [40] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [25] [2410] [45] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        Create Block [2] [2900] [350] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                    else\n                        if <(SCREEN) = [Level 5]> then\n                            set [level v] to [5]\n                            Create Block [34] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                            Create Block [31] [145] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [31] [300] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [31] [455] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [16] [650] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [17] [950] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [320] [20] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [24] [1400] [50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [22] [1700] [200] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [17] [1800] [50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [24] [2450] [300] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [2555] [303] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [2635] [303] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [31] [2730] [300] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [2827] [303] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [2907] [303] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [32] [3002] [300] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [32] [3002] [300] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Moving Block [28] [3250] [260] appear: [0] length of action: [60] key press: [e] path: [3500] [0] [3250] [260]\n                            Create Block [25] [4100] [375] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [3730] [500] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [3830] [600] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [15] [3930] [700] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            Create Block [2] [4350] [350] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                        else\n                            if <(SCREEN) = [Level 6]> then\n                                set [level v] to [6]\n                                Create Block [37] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [150] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [400] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [650] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [32] [810] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [32] [970] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [39] [1300] [-100] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [17] [2100] [200] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [17] [2500] [400] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [21] [2750] [375] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Moving Block [28] [2650] [-100] appear: [0] length of action: [100] key press: [e] path: [3100] [-100] [2650] [-100]\n                                Create Block [22] [3500] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [3800] [7] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [4000] [200] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [3800] [400] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [38] [4000] [600] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [31] [4150] [800] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [15] [4252] [805] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [32] [4350] [800] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [25] [4550] [800] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [39] [4850] [700] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                Create Block [2] [5202] [730] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                            else\n                                if <(SCREEN) = [Level 7]> then\n                                    set [level v] to [7]\n                                    Create Block [41] [0] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [38] [-150] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [38] [150] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [24] [0] [175] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Moving Block [28] [-400] [130] appear: [0] length of action: [60] key press: [e] path: [-700] [130] [-400] [130]\n                                    Create Block [38] [-1000] [0] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [38] [-1250] [0] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Moving Block [28] [-1550] [130] appear: [0] length of action: [180] key press: [e] path: [-1550] [-750] [-1550] [130]\n                                    Create Block [31] [-1250] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [15] [-1100] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [32] [-950] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [31] [-750] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [15] [-600] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [32] [-450] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [17] [-200] [-750] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Moving Block [28] [1550] [130] appear: [0] length of action: [180] key press: [e] path: [1550] [-750] [1550] [130]\n                                    Create Block [39] [900] [0] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [25] [1250] [100] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [17] [700] [-600] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Moving Block [28] [350] [-575] appear: [0] length of action: [180] key press: [e] path: [350] [-150] [350] [-575]\n                                    Create Block [24] [175] [450] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    Create Block [2] [490] [660] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                else\n                                    if <(SCREEN) = [Java]> then\n                                        set [level v] to [8]\n                                        set [sparks initiated v] to [0]\n                                        Create Block [42] [0] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                        Create Block [43] [200] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                        Create Block [44] [400] [-50] appear: [0] length of action: [5] requires key press: [] unlock after: [] decaying: []\n                                    else\n                                        if <(SCREEN) = [Sandbox]> then\n                                            set [level v] to [-]\n                                            set [placing block toggle v] to [-1]\n                                            Create Block [46] [0] [-50] appear: [0] length of action: [60] requires key press: [] unlock after: [] decaying: []\n                                            Create From List\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Activate\nset [running v] to [0]\nif <(decaying) > [0]> then\n    set [decaying v] to [2]\n    set [decay delay v] to [0]\nelse\n    if <(id) = [1]> then\n        start sound [Meow v]\n    else\n        if <(id) = [2]> then\n            if <(SCREEN) = [story - 6]> then\n                set [screen v] to [Intro]\n                broadcast (transition to intro v)\n            else\n                if <(LEVEL) > (LEVELS COMPLETED)> then\n                    set [levels completed v] to (LEVEL)\n                end\n                set [screen v] to [Main Menu]\n                broadcast (Main Menu v)\n                broadcast (Loading Screen v)\n            end\n        else\n            if <(id) = [4]> then\n                set [notification v] to [Welcome To Scratch]\n                broadcast (NOTIFY v)\n            else\n                if <(id) = [5]> then\n                    set [screen v] to [Level 1]\n                    broadcast (Loading Screen v)\n                else\n                    if <(id) = [6]> then\n                        set [note v] to [60]\n                        set [duration v] to [.25]\n                        broadcast (Play Note v)\n                    else\n                        if <(id) = [7]> then\n                            set [note v] to [62]\n                            set [duration v] to [.25]\n                            broadcast (Play Note v)\n                        else\n                            if <(id) = [8]> then\n                                set [note v] to [64]\n                                set [duration v] to [.25]\n                                broadcast (Play Note v)\n                            else\n                                if <(id) = [9]> then\n                                    set [note v] to [65]\n                                    set [duration v] to [.25]\n                                    broadcast (Play Note v)\n                                else\n                                    if <(id) = [10]> then\n                                        set [note v] to [67]\n                                        set [duration v] to [.25]\n                                        broadcast (Play Note v)\n                                    else\n                                        if <(id) = [11]> then\n                                            set [notification v] to [Level 1]\n                                            broadcast (NOTIFY v)\n                                        else\n                                            if <(id) = [12]> then\n                                                set [screen v] to [Level 2]\n                                                broadcast (Loading Screen v)\n                                            else\n                                                if <(id) = [13]> then\n                                                    set [notification v] to [Level 2]\n                                                    broadcast (NOTIFY v)\n                                                else\n                                                    if <(id) = [16]> then\n                                                        start sound [Boing v]\n                                                        set [yv v] to [30]\n                                                    else\n                                                        if <(id) = [17]> then\n                                                            change [color effect v] by (20)\n                                                            set [color effect v] to ((COLOR EFFECT) mod (200))\n                                                        else\n                                                            if <(id) = [18]> then\n                                                                set [size v] to [25]\n                                                            else\n                                                                if <(id) = [19]> then\n                                                                    set [size v] to [100]\n                                                                else\n                                                                    if <(id) = [26]> then\n                                                                        set [screen v] to [Level 3]\n                                                                        broadcast (Loading Screen v)\n                                                                    else\n                                                                        if <(id) = [27]> then\n                                                                            set [notification v] to [Level 3]\n                                                                            broadcast (NOTIFY v)\n                                                                        else\n                                                                            if <(id) = [29]> then\n                                                                                set [screen v] to [Level 4]\n                                                                                broadcast (Loading Screen v)\n                                                                            else\n                                                                                if <(id) = [30]> then\n                                                                                    set [notification v] to [Level 4]\n                                                                                    broadcast (NOTIFY v)\n                                                                                else\n                                                                                    if <(id) = [33]> then\n                                                                                        set [screen v] to [Level 5]\n                                                                                        broadcast (Loading Screen v)\n                                                                                    else\n                                                                                        if <(id) = [34]> then\n                                                                                            set [notification v] to [Level 5]\n                                                                                            broadcast (NOTIFY v)\n                                                                                        else\n                                                                                            if <(id) = [35]> then\n                                                                                                if <(START MUSIC) = [1]> then\n                                                                                                    set [start music v] to [0]\n                                                                                                else\n                                                                                                    set [start music v] to [1]\n                                                                                                end\n                                                                                                broadcast (Start Music v)\n                                                                                            else\n                                                                                                if <(id) = [36]> then\n                                                                                                    set [screen v] to [Level 6]\n                                                                                                    broadcast (Loading Screen v)\n                                                                                                else\n                                                                                                    if <(id) = [37]> then\n                                                                                                        set [notification v] to [Level 6]\n                                                                                                        broadcast (NOTIFY v)\n                                                                                                    else\n                                                                                                        if <(id) = [39]> then\n                                                                                                            start sound [Tada v]\n                                                                                                            set [confetti timer v] to (timer)\n                                                                                                        else\n                                                                                                            if <(id) = [40]> then\n                                                                                                                set [screen v] to [Level 7]\n                                                                                                                broadcast (Loading Screen v)\n                                                                                                            else\n                                                                                                                if <(id) = [41]> then\n                                                                                                                    set [notification v] to [Level 7]\n                                                                                                                    broadcast (NOTIFY v)\n                                                                                                                else\n                                                                                                                    if <(id) = [42]> then\n                                                                                                                        set [notification v] to [hello world]\n                                                                                                                        broadcast (Notify Terminal v)\n                                                                                                                    else\n                                                                                                                        if <(id) = [43]> then\n                                                                                                                            if <(sparks initiated) = [0]> then\n                                                                                                                                broadcast (init sparks v)\n                                                                                                                                set [sparks initiated v] to [1]\n                                                                                                                            end\n                                                                                                                        else\n                                                                                                                            if <(id) = [44]> then\n                                                                                                                                broadcast (credits v)\n                                                                                                                            else\n                                                                                                                                if <(id) = [45]> then\n                                                                                                                                    set [screen v] to [Sandbox]\n                                                                                                                                    broadcast (Loading Screen v)\n                                                                                                                                else\n                                                                                                                                    if <(id) = [46]> then\n                                                                                                                                        set [notification v] to [Custom Level]\n                                                                                                                                        broadcast (NOTIFY v)\n                                                                                                                                    end\n                                                                                                                                end\n                                                                                                                            end\n                                                                                                                        end\n                                                                                                                    end\n                                                                                                                end\n                                                                                                            end\n                                                                                                        end\n                                                                                                    end\n                                                                                                end\n                                                                                            end\n                                                                                        end\n                                                                                    end\n                                                                                end\n                                                                            end\n                                                                        end\n                                                                    end\n                                                                end\n                                                            end\n                                                        end\n                                                    end\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Tick\nswitch costume to (die v)\nset size to ((100) * (SCALE)) %\nswitch costume to ((id) * (2))\nif <<(appear) = [1]> and <(master) = [false]>> then\n    if <<([abs v] of ((x position) - (translated x)) ) < [1]> and <([abs v] of ((y position) - (translated y)) ) < [1]>> then\n        if <(SCREEN) = [Sandbox]> then\n            if <<mouse down?> and <(PLACING BLOCK) = [0]>> then\n                if <<(click released) = [true]> and <touching (mouse-pointer v)?>> then\n                    if <(SANDBOX - GRABBING BLOCK) = [0]> then\n                        set [x offset v] to ((mouse x) - (((x) * (SCALE)) - (SCROLL_X)))\n                        set [y offset v] to ((mouse y) - (((y) * (SCALE)) - (SCROLL_Y)))\n                        set [click released v] to [false]\n                        set [sandbox - grabbing block v] to [1]\n                    end\n                end\n                if <<not <(id) = [46]>> and <(click released) = [false]>> then\n                    set [x v] to ((((mouse x) + (SCROLL_X)) / (SCALE)) - ((x offset) / (SCALE)))\n                    set [y v] to ((((mouse y) + (SCROLL_Y)) / (SCALE)) - ((y offset) / (SCALE)))\n                    replace item ((((clone index) - (1)) * (3)) - (1)) of [sandbox level v] with ((((mouse x) + (SCROLL_X)) / (SCALE)) - ((x offset) / (SCALE)))\n                    replace item ((((clone index) - (1)) * (3)) - (0)) of [sandbox level v] with ((((mouse y) + (SCROLL_Y)) / (SCALE)) - ((y offset) / (SCALE)))\n                end\n            else\n                if <(click released) = [false]> then\n                    set [click released v] to [true]\n                    set [sandbox - grabbing block v] to [0]\n                    if <touching (sandbox trash v)?> then\n                        Delete Block\n                    end\n                end\n            end\n        end\n        show\n        if <(running) < (length of action)> then\n            set [state v] to [1]\n            change [running v] by (1)\n        else\n            set [state v] to [0]\n        end\n        change y by ((10) * (SCALE))\n        if <touching (scratch cat v)?> then\n            if <(id) = [15]> then\n                set [exit v] to [die]\n                start sound [Die v]\n            end\n        end\n        change y by ((-20) * (SCALE))\n        if <touching (scratch cat v)?> then\n            if <(id) = [15]> then\n                set [exit v] to [die]\n                start sound [Die v]\n            end\n        end\n        change y by ((20) * (SCALE))\n        if <<touching (scratch cat v)?> and <(YV) < [.1]>> then\n            if <(running) > ((length of action) - (1))> then\n                if <(required key press) > []> then\n                    if <<key ((required key press) v) pressed?> and <(key released) = [true]>> then\n                        Activate\n                        set [key released v] to [false]\n                    end\n                else\n                    if <(touching scratch cat) = [false]> then\n                        Activate\n                    end\n                end\n                set [touching scratch cat v] to [true]\n            end\n        end\n        if <not <touching (scratch cat v)?>> then\n            change y by ((10) * (SCALE))\n            if <not <touching (scratch cat v)?>> then\n                set [touching scratch cat v] to [false]\n            end\n        end\n        if <not <key ((required key press) v) pressed?>> then\n            set [key released v] to [true]\n        end\n        change y by ((10) * (SCALE))\n        if <touching (scratch cat v)?> then\n            Activate on Touch\n        end\n        if <<(state) = [1]> or <<(id) = [3]> or <<(id) = [38]> or <<(id) = [35]> and <(START MUSIC) = [1]>>>>> then\n            switch costume to ((id) * (2))\n        else\n            switch costume to (((id) * (2)) - (1))\n        end\n    else\n        hide\n    end\n    Always Activate\n    Decay\n    if <<(id) = [14]> and <(LEVELS COMPLETED) > ((unlock at #) - (1))>> then\n        if <(((150) - (effect)) / (10)) > [1]> then\n            change [ghost v] effect by (10)\n            change [effect v] by (10)\n        else\n            delete this clone\n        end\n    end\n    Position\nend\nif <(master) = [true]> then\n    if <(SCREEN) = [Sandbox]> then\n        if <(placing block toggle) = [1]> then\n            set [placing block v] to (item ((SCROLL INDEX) + (1)) of [sandbox - placeable blocks v])\n            if <<(PLACING BLOCK) = [47]> or <(PLACING BLOCK) = [48]>> then\n                switch costume to (start start sound meow v)\n                set size to ((100) * (SCALE)) %\n                switch costume to (((PLACING BLOCK) * (2)) - (1))\n                go to x: (mouse x) y: (mouse y)\n                set [ghost v] effect to (50)\n                stamp\n                if <mouse down?> then\n                    if <(mouse released) = [true]> then\n                        set [mouse released v] to [false]\n                        set [new bug id v] to (((SCROLL INDEX) mod (2)) + (1))\n                        set [new bug x v] to (mouse x)\n                        set [new bug y v] to (mouse y)\n                        broadcast (new bug v)\n                        add (PLACING BLOCK) to [sandbox level v]\n                        add (mouse x) to [sandbox level v]\n                        add (mouse y) to [sandbox level v]\n                    end\n                else\n                    set [mouse released v] to [true]\n                end\n            else\n                Place Block (mouse x) (mouse y) (PLACING BLOCK)\n            end\n        else\n            set [placing block v] to [0]\n        end\n    else\n        if <(PLACING BLOCK) > [0]> then\n            Place Block (mouse x) (mouse y) (PLACING BLOCK)\n        end\n    end\nend\n\ndefine Create Moving Block (id) (x) (y) appear: (apear) length of action: (length) key press: (key press) path: (x1) (y1) (x2) (y2)\nset [id v] to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [appear v] to (appear)\nset [length of action v] to (length)\nset [running v] to (length)\nset [required key press v] to (key press)\ndelete all of [path v]\nadd (x1) to [path v]\nadd (y1) to [path v]\nadd (x2) to [path v]\nadd (y2) to [path v]\nset [target v] to [2]\nset [master v] to [false]\ncreate clone of (_myself_ v)\nset [master v] to [true]\n\ndefine Glide\nif <<(id) = [3]> or <(id) = [28]>> then\n    change [x v] by ((5) * ((((item (((target) * (2)) - (1)) of [path v]) - (x)) / (length of action)) / ([abs v] of (((item (((target) * (2)) - (1)) of [path v]) - (x)) / (length of action)) )))\n    change [y v] by ((5) * ((((item ((target) * (2)) of [path v]) - (y)) / (length of action)) / ([abs v] of (((item ((target) * (2)) of [path v]) - (y)) / (length of action)) )))\n    change y by (10)\n    if <touching (scratch cat v)?> then\n        change [player x v] by ((5) * ((((item (((target) * (2)) - (1)) of [path v]) - (x)) / (length of action)) / ([abs v] of (((item (((target) * (2)) - (1)) of [path v]) - (x)) / (length of action)) )))\n        change [player y v] by ((5) * ((((item ((target) * (2)) of [path v]) - (y)) / (length of action)) / ([abs v] of (((item ((target) * (2)) of [path v]) - (y)) / (length of action)) )))\n    end\n    Position\n    if <<([abs v] of (((item (((target) * (2)) - (1)) of [path v]) - (x)) / (length of action)) ) < [1]> and <([abs v] of (((item ((target) * (2)) of [path v]) - (y)) / (length of action)) ) < [1]>> then\n        if <(target) = [1]> then\n            if <(id) = [28]> then\n                change y by (10)\n                if <<key ((required key press) v) pressed?> and <touching (scratch cat v)?>> then\n                    set [target v] to [2]\n                end\n                Position\n            else\n                set [target v] to [2]\n            end\n        else\n            if <(id) = [28]> then\n                change y by (10)\n                if <<key ((required key press) v) pressed?> and <touching (scratch cat v)?>> then\n                    set [target v] to [1]\n                end\n                Position\n            else\n                set [target v] to [1]\n            end\n        end\n        set [state v] to [0]\n    else\n        set [state v] to [1]\n    end\nend\n\nbroadcast (DEV - Refresh Objects v) and wait\n\ndefine get Distance from: (x1) (y1) to: (x2) (y2)\nset [distance v] to ([sqrt v] of ((((y2) - (y1)) * ((y2) - (y1))) + (((x2) - (x1)) * ((x2) - (x1)))) )\n\ndefine Decay\nif <(decaying) = [2]> then\n    if <(decay delay) > [20]> then\n        change [y v] by (((-1500) - (y)) / (100))\n        change [pixelate v] effect by (5)\n        change [brightness v] effect by (5)\n        change [ghost v] effect by (5)\n        if <([abs v] of (((-1500) - (y)) / (100)) ) < [1]> then\n            Position\n            if <not <([abs v] of ((original y) - (SCROLL_Y)) ) < [180]>> then\n                set [decaying v] to [1]\n            end\n        end\n    else\n        change [decay delay v] by (1)\n    end\nelse\n    if <(decaying) = [1]> then\n        set [y v] to (original y)\n        clear graphic effects\n    end\nend\n\ndefine Activate on Touch\nif <(id) = [31]> then\n    set [state v] to [1]\n    if <(BLOCKS AFFECTING X) = [false]> then\n        change [player x v] by (4)\n        set [blocks affecting x v] to [true]\n    end\nelse\n    if <(id) = [32]> then\n        set [state v] to [1]\n        if <(BLOCKS AFFECTING X) = [false]> then\n            change [player x v] by (-4)\n            set [blocks affecting x v] to [true]\n        end\n    end\nend\n\nwhen I receive [green flag v]\nrepeat until <(SCREEN) = [story - 6]>\n    if <key (space v) pressed?> then\n        stop [other scripts in sprite v]\n        hide\n    end\nend\n\ndefine Place Block (x) (y) (id)\nswitch costume to (start start sound meow v)\nset size to ((100) * (SCALE)) %\nswitch costume to (((id) * (2)) - (1))\ngo to x: (x) y: (y)\nset [ghost v] effect to (50)\nstamp\nif <mouse down?> then\n    if <(mouse released) = [true]> then\n        set [mouse released v] to [false]\n        Create Block (PLACING BLOCK) (((x) + (SCROLL_X)) / (SCALE)) (((y) + (SCROLL_Y)) / (SCALE)) appear: [1] length of action: [1] requires key press: [] unlock after: [] decaying: []\n        add (PLACING BLOCK) to [sandbox level v]\n        add (((x) + (SCROLL_X)) / (SCALE)) to [sandbox level v]\n        add (((y) + (SCROLL_Y)) / (SCALE)) to [sandbox level v]\n        delete (INVENTORY INDEX OF PLACING BLOCK) of [inventory v]\n        set [placing block v] to [0]\n    end\nelse\n    set [mouse released v] to [true]\nend\n\nbroadcast (DEV - Refresh Objects v) and wait\n\nwhen I receive [adjust volume level v]\nset volume to (VOLUME LEVEL) %\n\ndefine Always Activate\nGlide\nif <(id) = [38]> then\n    if <<([abs v] of ((PLAYER X) - (x)) ) < [75]> and <<[0] < ((PLAYER Y) - (y))> and <((PLAYER Y) - (y)) < [300]>>> then\n        if <(YV) < [6]> then\n            change [yv v] by (3)\n        end\n    end\n    if <((TICK) - (last tick)) > [5]> then\n        set [last tick v] to (TICK)\n        add (pick random ((x) - (75)) to ((x) + (75))) to [wind particles v]\n        add (y) to [wind particles v]\n        add [0] to [wind particles v]\n        add (pick random (2) to (5)) to [wind particles v]\n        add (pick random (75) to (100)) to [wind particles v]\n        add [0] to [wind particles v]\n    end\nelse\n    if <(id) = [39]> then\n        if <((timer) - (confetti timer)) < [2]> then\n            set [last tick v] to (TICK)\n            add (pick random ((x) - (200)) to ((x) + (150))) to [confetti v]\n            add ((y) + (400)) to [confetti v]\n            add [0] to [confetti v]\n            add (pick random (-3) to (-7)) to [confetti v]\n            add [0] to [confetti v]\n            add (pick random (0) to (100)) to [confetti v]\n        end\n    end\nend\n\ndefine EDITOR - LAST SPOT\n\nbroadcast (DEV - Refresh Objects v) and wait\n\nbroadcast (Tick v)\n\nwhen [m v] key pressed\nset [placing block toggle v] to ((placing block toggle) * (-1))\n\ndefine Create From List\nset [p v] to [0]\nrepeat ((length of [sandbox level v]) / (3))\n    change [p v] by (1)\n    if <<(item (((p) * (3)) - (2)) of [sandbox level v]) = [47]> or <(item (((p) * (3)) - (2)) of [sandbox level v]) = [48]>> then\n        set [new bug id v] to ((3) - (((item (((p) * (3)) - (2)) of [sandbox level v]) mod (2)) + (1)))\n        set [new bug x v] to (item (((p) * (3)) - (1)) of [sandbox level v])\n        set [new bug y v] to (item (((p) * (3)) - (0)) of [sandbox level v])\n        broadcast (new bug v) and wait\n    else\n        Create Block (item (((p) * (3)) - (2)) of [sandbox level v]) (item (((p) * (3)) - (1)) of [sandbox level v]) (item (((p) * (3)) - (0)) of [sandbox level v]) appear: [1] length of action: [5] requires key press: [] unlock after: [] decaying: []\n    end\nend\n\ndelete all of [sandbox level v]\n\ndefine Convert String (string) to List\ndelete all of [tmp list v]\nset [c v] to [1]\nrepeat until <(c) > (length of (string))>\n    set [tmp word v] to []\n    repeat until <<(letter (c) of (string)) = [ ]> or <(c) = (length of (string))>>\n        set [tmp word v] to (join (tmp word) (letter (c) of (string)))\n        change [c v] by (1)\n    end\n    add (round (tmp word)) to [tmp list v]\n    change [c v] by (1)\nend\nif <((length of [tmp list v]) / (3)) = (round ((length of [tmp list v]) / (3)))> then\n    set [save code validity v] to [valid]\n    delete all of [sandbox level v]\n    set [c v] to [0]\n    repeat (length of [tmp list v])\n        change [c v] by (1)\n        add (item (c) of [tmp list v]) to [sandbox level v]\n    end\nelse\n    set [save code validity v] to [invalid]\n    broadcast (Notify Load Error v)\nend\n\nwhen I receive [import level v]\nConvert String (IMPORT LEVEL CODE) to List\nbroadcast (Loading Screen v)\n\nwhen I receive [save level v]\ndelete all of [copy this to save your level v]\nadd (SANDBOX LEVEL) to [copy this to save your level v]\nhide list [copy this to save your level v]\n\nwhen I receive [check if valid save code v]\nConvert String (IMPORT LEVEL CODE) to List\n\nwhen I receive [reduce clone index v]\nif <(clone index) > (DELETED INDEX)> then\n    change [clone index v] by (-1)\nend\n\ndefine Delete Block\nset [deleted index v] to (clone index)\nrepeat (3)\n    delete ((((clone index) - (1)) * (3)) - (2)) of [sandbox level v]\nend\nbroadcast (reduce clone index v)\ndelete this clone\n\n@bugs\n\ndefine Animate (anim) (offset)\nset [t v] to ((length of (anim)) - (1))\nswitch costume to ((offset) + (letter ((([floor v] of ((TICK) / (letter (1) of (anim))) ) mod (t)) + (2)) of (anim)))\n\ndefine Create Bug (id) (x) (y)\nset [id v] to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [original y v] to (y)\nset [master v] to [false]\nset [die v] to [0]\nset [decaying v] to [1]\nchange [clone placement index v] by (1)\nset [clone index v] to (CLONE PLACEMENT INDEX)\nset [click released v] to [false]\ncreate clone of (_myself_ v)\nset [master v] to [true]\nhide\n\ndefine Position\ngo to x: (((x) * (SCALE)) - (SCROLL_X)) y: (((y) * (SCALE)) - (SCROLL_Y))\n\nwhen I start as a clone\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen flag clicked\nhide\n\nwhen I receive [tick v]\nif <(master) = [false]> then\n    if <(SCREEN) = [Sandbox]> then\n        if <<mouse down?> and <(PLACING BLOCK) = [0]>> then\n            if <<(click released) = [true]> and <touching (mouse-pointer v)?>> then\n                if <(SANDBOX - GRABBING BLOCK) = [0]> then\n                    set [x offset v] to ((mouse x) - (((x) * (SCALE)) - (SCROLL_X)))\n                    set [y offset v] to ((mouse y) - (((y) * (SCALE)) - (SCROLL_Y)))\n                    set [click released v] to [false]\n                    set [sandbox - grabbing block v] to [1]\n                end\n            end\n            if <(click released) = [false]> then\n                set [x v] to ((((mouse x) + (SCROLL_X)) / (SCALE)) - ((x offset) / (SCALE)))\n                set [y v] to ((((mouse y) + (SCROLL_Y)) / (SCALE)) - ((y offset) / (SCALE)))\n                set [original y v] to ((((mouse y) + (SCROLL_Y)) / (SCALE)) - ((y offset) / (SCALE)))\n                replace item ((((clone index) - (1)) * (3)) - (1)) of [sandbox level v] with ((((mouse x) + (SCROLL_X)) / (SCALE)) - ((x offset) / (SCALE)))\n                replace item ((((clone index) - (1)) * (3)) - (0)) of [sandbox level v] with ((((mouse y) + (SCROLL_Y)) / (SCALE)) - ((y offset) / (SCALE)))\n            end\n        else\n            if <(click released) = [false]> then\n                set [click released v] to [true]\n                set [sandbox - grabbing block v] to [0]\n                if <touching (sandbox trash v)?> then\n                    Delete Bug\n                end\n            end\n        end\n    end\n    set size to ((100) * (SCALE)) %\n    Decay\n    if <(die) > [0]> then\n        change y by (-5)\n        change [ghost v] effect by (10)\n        change [die v] by (1)\n        if <(die) = [11]> then\n            delete this clone\n        end\n    else\n        if <<([abs v] of ((x position) - (((x) * (SCALE)) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - (((y) * (SCALE)) - (SCROLL_Y))) ) < [1]>> then\n            go to [back v] layer\n            show\n            if <(id) = [1]> then\n                Animate [2123456] [1]\n                go to x: ((((x) * (SCALE)) - (SCROLL_X)) + (([sin v] of ((timer) * (50)) ) * ((10) * (SCALE)))) y: ((((y) * (SCALE)) - (SCROLL_Y)) + (([cos v] of ((timer) * (150)) ) * ((10) * (SCALE))))\n                if <<(sfx started) = [false]> or <(TOC - PLAYING SOUND) = [false]>> then\n                    broadcast (Toc - Wirl v)\n                end\n            else\n                if <(id) = [2]> then\n                    Position\n                    if <<touching (blocks v)?> or <<(y) < (lowest y)> or <(y) = (lowest y)>>> then\n                        if <<(y) < (lowest y)> or <(y) = (lowest y)>> then\n                            set [lowest y v] to (y)\n                        end\n                        set [tac - y vel v] to [20]\n                        if <(sfx started) = [false]> then\n                            broadcast (Tac - Bounce v)\n                        end\n                    end\n                    change [y v] by (Tac - y vel)\n                    set rotation style [all around v]\n                    if <(Tac - y vel) > [-20]> then\n                        change [tac - y vel v] by (-1)\n                    end\n                    if <(Tac - y vel) > [0]> then\n                        switch costume to (tac - static v)\n                    else\n                        switch costume to (tac - fall  v)\n                    end\n                end\n            end\n            if <touching (scratch cat v)?> then\n                if <<(PLAYER Y) > ((y) - (100))> and <(YV) < [0]>> then\n                    set [yv v] to [30]\n                    set [decaying v] to [2]\n                    broadcast (Bugs - Die v)\n                else\n                    set [exit v] to [die]\n                end\n            end\n        else\n            hide\n            if <(TOC - PLAYING SOUND) = [true]> then\n                set volume to ((100) - ((distance to [scratch cat v]) / (5))) %\n                start sound [Toc - Wirl v]\n                set [toc - playing sound v] to [false]\n            end\n        end\n    end\nend\n\nwhen I receive [set up v]\npoint in direction (90)\nif  then\n    delete this clone\nend\nif <(SCREEN) = [Level 2]> then\n    Create Bug [1] [2100] [-550]\n    Create Bug [2] [2450] [-649]\nelse\n    if <(SCREEN) = [Level 3]> then\n        Create Bug [1] [150] [-50]\n        Create Bug [1] [350] [50]\n        Create Bug [1] [550] [150]\n        Create Bug [1] [1200] [200]\n        Create Bug [1] [1400] [300]\n        Create Bug [1] [1600] [400]\n        Create Bug [1] [2400] [-450]\n        Create Bug [1] [2600] [-350]\n        Create Bug [1] [2800] [-250]\n    else\n        if <(SCREEN) = [Level 4]> then\n            Create Bug [1] [750] [0]\n            Create Bug [1] [850] [100]\n            Create Bug [1] [950] [200]\n            Create Bug [2] [2300] [100]\n            Create Bug [1] [2550] [50]\n            Create Bug [1] [2650] [150]\n            Create Bug [1] [2750] [250]\n        else\n            if <(SCREEN) = [Level 5]> then\n                Create Bug [2] [950] [0]\n                Create Bug [1] [1200] [-50]\n                Create Bug [1] [2200] [100]\n                Create Bug [1] [2300] [200]\n                Create Bug [1] [3730] [75]\n                Create Bug [1] [3830] [175]\n                Create Bug [1] [3930] [275]\n            else\n                if <(SCREEN) = [Level 6]> then\n                    Create Bug [2] [1440] [-50]\n                    Create Bug [1] [1600] [-100]\n                    Create Bug [1] [1750] [0]\n                    Create Bug [1] [1900] [100]\n                else\n                    if <(SCREEN) = [Level 7]> then\n                        Create Bug [1] [300] [150]\n                        Create Bug [1] [450] [150]\n                        Create Bug [1] [600] [150]\n                        Create Bug [1] [1250] [-700]\n                        Create Bug [1] [1100] [-700]\n                        Create Bug [1] [950] [-700]\n                    end\n                end\n            end\n        end\n    end\nend\n\nbroadcast (DEV - Refresh Objects v)\n\nwhen I receive [toc - wirl v]\nset [toc - playing sound v] to [true]\nset [sfx started v] to [false]\n\ndefine Decay\nif <(decaying) = [2]> then\n    if <(decay delay) > [20]> then\n        change [y v] by (((-1500) - (y)) / (100))\n        change [ghost v] effect by (10)\n        if <([abs v] of (((-1500) - (y)) / (100)) ) < [1]> then\n            if <<([abs v] of ((original y) - (SCROLL_Y)) ) > [180]> or <([abs v] of ((x) - (SCROLL_X)) ) > [240]>> then\n                set [decaying v] to [1]\n            end\n        end\n    else\n        change [decay delay v] by (1)\n    end\nelse\n    if <(decaying) = [1]> then\n        change [y v] by (((original y) - (y)) / (40))\n        clear graphic effects\n        Position\n    end\nend\n\nset [die v] to [1]\n\nwhen I receive [bugs - die v]\nset [sfx started v] to [true]\nset volume to ((100) - ((distance to [scratch cat v]) / (5))) %\nplay sound [Bug - Pop v] until done\nset [sfx started v] to [false]\n\nwhen I receive [tac - bounce v]\nset [sfx started v] to [true]\nset volume to ((100) - ((distance to [scratch cat v]) / (5))) %\nplay sound [Tac - Bounce v] until done\nset [sfx started v] to [false]\n\nwhen I receive [adjust volume level v]\nset volume to (VOLUME LEVEL) %\n\nwhen I receive [new bug v]\nif <(master) = [true]> then\n    Create Bug (NEW BUG ID) (((NEW BUG X) + (SCROLL_X)) / (SCALE)) (((NEW BUG Y) + (SCROLL_Y)) / (SCALE))\nend\n\nwhen I receive [reduce clone index v]\nif <(clone index) > (DELETED INDEX)> then\n    change [clone index v] by (-1)\nend\n\ndefine Delete Bug\nset [deleted index v] to (clone index)\nrepeat (3)\n    delete ((((clone index) - (1)) * (3)) - (2)) of [sandbox level v]\nend\nbroadcast (reduce clone index v)\ndelete this clone\n\n@Collectable Blocks\n\nwhen flag clicked\nhide\n\ndefine Create Block (x) (y) id (id)\nswitch costume to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [id v] to (id)\nset [master v] to [false]\ncreate clone of (_myself_ v)\nset [master v] to [true]\n\nwhen I receive [set up v]\ndelete all of [inventory v]\nif  then\n    delete this clone\nend\nif <(SCREEN) = [Level 5]> then\n    Create Block [1450] [110] id [18]\n    Create Block [1900] [110] id [19]\nelse\n    if <(SCREEN) = [Level 6]> then\n        Create Block [2200] [275] id [16]\n        Create Block [2604] [475] id [18]\n        Create Block [2800] [475] id [19]\n    else\n        if <(SCREEN) = [Level 7]> then\n            Create Block [-120] [-675] id [38]\n            Create Block [620] [-530] id [16]\n        end\n    end\nend\n\nbroadcast (DEV - Refresh Objects v) and wait\n\nwhen I receive [tick v]\nif <(master) = [false]> then\n    go to [back v] layer\n    Position\n    if <<([abs v] of ((x position) - (translate x)) ) < [1]> and <([abs v] of ((y position) - (translate y)) ) < [1]>> then\n        show\n    else\n        hide\n    end\n    if <touching (scratch cat v)?> then\n        change [x v] by (((PLAYER X) - (x)) / (5))\n        change [y v] by (((PLAYER Y) - (y)) / (5))\n        if <<([abs v] of ((PLAYER X) - (x)) ) < [1]> and <([abs v] of ((PLAYER Y) - (y)) ) < [1]>> then\n            add (id) to [inventory v]\n            delete this clone\n        end\n    end\nend\n\ndefine Position\nset [translate x v] to (((x) - (SCROLL_X)) + (([sin v] of ((timer) * (150)) ) * (5)))\nset [translate y v] to (((y) - (SCROLL_Y)) + (([cos v] of ((timer) * (75)) ) * (5)))\ngo to x: (translate x) y: (translate y)\n\n@inventory slots\n\nwhen flag clicked\nhide\n\nwhen I receive [tick v]\nif <<<<(LEVELS COMPLETED) > [5]> or <(INVENTORY DISCOVERED) > [0]>> or <(length of [inventory v]) > [0]>> and <<not <(SCREEN) = [Main Menu]>> and <not <(SCREEN) = [Sandbox]>>>> then\n    change [ghost v] effect by (-5)\n    set [inventory discovered v] to [1]\n    show\n    if <(length of [inventory v]) > ((inventory index) - (1))> then\n        switch costume to (item (inventory index) of [inventory v])\n        if <key ((inventory index) v) pressed?> then\n            set [inventory index of placing block v] to (inventory index)\n            set [placing block v] to (item (inventory index) of [inventory v])\n        end\n        if <mouse down?> then\n            set [mouse released v] to [false]\n        else\n            if <<(mouse released) = [false]> and <<not <mouse down?>> and <touching (mouse-pointer v)?>>> then\n                set [inventory index of placing block v] to (inventory index)\n                set [placing block v] to (item (inventory index) of [inventory v])\n            end\n            set [mouse released v] to [true]\n        end\n    else\n        switch costume to (blank v)\n    end\n    if <key (space v) pressed?> then\n        set [placing block v] to [0]\n    end\nelse\n    hide\n    set [ghost v] effect to (100)\nend\n\nwhen I receive [set up v]\nif  then\n    delete this clone\nend\nswitch costume to (blank v)\ngo to x: (210) y: (-150)\nset [inventory index v] to [1]\nrepeat (2)\n    create clone of (_myself_ v)\n    change y by (55)\n    change [inventory index v] by (1)\nend\n\nbroadcast (DEV - Refresh Objects v) and wait\n\n@commets\n\nwhen I receive [set up v]\nif  then\n    delete this clone\nend\nif <(SCREEN) = [Main Menu]> then\n    Create Comment [2] [180] [75]\n    Create Comment [12] [0] [390]\nelse\n    if <(SCREEN) = [Level 1]> then\n        Create Comment [3] [75] [150]\n        Create Comment [4] [1400] [500]\n        Create Comment [5] [3326] [200]\n    else\n        if <(SCREEN) = [Level 2]> then\n            Create Comment [6] [920] [-300]\n            Create Comment [7] [998] [-600]\n            Create Comment [8] [1300] [-600]\n        else\n            if <(SCREEN) = [Level 3]> then\n                Create Comment [9] [2200] [0]\n            else\n                if <(SCREEN) = [Level 5]> then\n                    Create Comment [10] [1450] [250]\n                else\n                    if <(SCREEN) = [Level 6]> then\n                        Create Comment [13] [2675] [500]\n                    else\n                        if <(SCREEN) = [Level 7]> then\n                            Create Comment [11] [-100] [-575]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine Create Comment (id) (x) (y)\nset [id v] to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [master v] to [false]\ncreate clone of (_myself_ v)\nset [master v] to [true]\nhide\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nshow\n\nwhen I receive [tick v]\nif <(master) = [false]> then\n    Position\n    if <<([abs v] of ((x position) - ((x) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((y) - (SCROLL_Y))) ) < [1]>> then\n        switch costume to (id)\n        go to [back v] layer\n        show\n        Position\n    else\n        hide\n    end\nend\n\ndefine Position\ngo to x: ((x) - (SCROLL_X)) y: ((y) - (SCROLL_Y))\n\nbroadcast (DEV - Refresh Objects v) and wait\n\n@loading background\n\nwhen I receive [loading screen v]\nhide variable [scale v]\ngo to [front v] layer\nclear graphic effects\nshow\nset [loading v] to [1]\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nbroadcast (loading v) and wait\nbroadcast (Set Up v) and wait\nbroadcast (Loading fade out v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nset [loading v] to [0]\n\nwhen I receive [green flag v]\nset [loading v] to [0]\nhide\n\nbroadcast (Loading Screen v) and wait\n\n@Loading text backdrop\n\nwhen I receive [loading screen v]\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\ngo [backward v] (3) layers\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\nwhen I receive [loading fade out v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen flag clicked\nhide\n\n@loading - notifications\n\nwhen I receive [loading v]\nshow\ndelete all of [notifications v]\nadd [1] to [notifications v]\nadd [2] to [notifications v]\nadd [3] to [notifications v]\nadd [4] to [notifications v]\nadd [5] to [notifications v]\nadd [6] to [notifications v]\nadd [7] to [notifications v]\nswitch costume to (full list v)\ngo to x: (0) y: (-170)\nrepeat (3)\n    set [rand v] to (pick random (1) to (length of [notifications v]))\n    set [notification # v] to (item (rand) of [notifications v])\n    delete (rand) of [notifications v]\n    repeat (50)\n        change y by ((((-240) + (((notification #) - (1)) * (37))) - (y position)) / (3))\n    end\nend\n\nwhen I receive [green flag v]\nhide\n\nbroadcast (Loading Screen v) and wait\n\nwhen I receive [loading fade out v]\nhide\n\nwhen I receive [loading screen v]\ngo to [front v] layer\ngo [backward v] (1) layers\n\n@loading - B\n\ndefine Show blocks\ngo to x: (-30) y: (50)\nswitch costume to (loading block 1 v)\nrepeat (3)\n    hide\n    create clone of (_myself_ v)\n    next costume\n    change y by (-52)\n    wait (.25) seconds\nend\n\nwhen I start as a clone\ngo to [front v] layer\nset [ghost v] effect to (100)\nshow\nrepeat (10)\n    change y by (4)\n    change [ghost v] effect by (-10)\nend\nwait (1) seconds\nrepeat (10)\n    change y by (4)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [loading v]\nrepeat (2)\n    Show blocks\n    wait (1.5) seconds\nend\n\nwhen I receive [green flag v]\nhide\ndelete this clone\n\n@Intro\n\ndefine Generate New Shades (min) (max)\nrepeat (# of costumes)\n    add (pick random (min) to (max)) to [shades v]\nend\n\ndefine Draw From Shade # (shade #)\nset [velocity v] to [0]\nset [rot velocity v] to [0]\nset size to (10) %\nswitch costume to (1 v)\nhide\nreset timer\npoint in direction (110)\nset [i v] to (((shade #) - (1)) * (# of costumes))\nrepeat (# of costumes)\n    change [i v] by (1)\n    set [brightness v] effect to (item (i) of [shades v])\n    create clone of (_myself_ v)\n    next costume\nend\nwait until <(timer) > [2.75]>\npoint in direction (90)\n\ndefine Delete Shade (shade #)\nrepeat (# of costumes)\n    delete ((((shade #) - (1)) * (# of costumes)) + (1)) of [shades v]\nend\n\nwhen I start as a clone\ngo to [front v] layer\nset [color v] effect to (75)\nshow\nrepeat until <(timer) > [3]>\n    set [velocity v] to ((((target size) - (size)) * (.1)) + ((velocity) * (.8)))\n    change size by (5)\n    change size by (velocity)\n    set [rot velocity v] to ((((80) - (direction)) * (.1)) + ((rot velocity) * (.8)))\n    turn right (5) degrees\n    turn right (rot velocity) degrees\nend\nrepeat until <(timer) > [3.5]>\n    set [velocity v] to (((((target size) + (50)) - (size)) * (.1)) + ((velocity) * (.8)))\n    change size by (5)\n    change size by (velocity)\nend\nrepeat until <(timer) > [3.65]>\n    set [velocity v] to ((((0) - (size)) * (.1)) + ((velocity) * (.8)))\n    change size by (5)\n    change size by (velocity)\n    set [rot velocity v] to ((((130) - (direction)) * (.1)) + ((rot velocity) * (.8)))\n    turn right (5) degrees\n    turn right (rot velocity) degrees\nend\ndelete this clone\n\nwhen I receive [panther__ intro v]\nDraw From Shade # [1]\nwait until <(timer) > [4]>\n\nwhen flag clicked\nset [# of costumes v] to [11]\nset [target size v] to [200]\n\n@transition\n\nwhen I receive [transition v]\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nset [ghost v] effect to (100)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nbroadcast (Set Up v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\n\nwhen I receive [transition to intro v]\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nset [ghost v] effect to (100)\nrepeat (20)\n    change [ghost v] effect by (-5)\nend\nbroadcast (Set Up v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\nhide\nbroadcast (panther__ Intro v)\nwait (4) seconds\nset [screen v] to [Main Menu]\nbroadcast (Main Menu v)\nbroadcast (Loading Screen v)\n\n@Navigation Bar\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen flag clicked\nhide\n\ndefine UPDATE\nif <(LOADING) = [0]> then\n    show\n    if <touching (mouse-pointer v)?> then\n        change y by (((0) - (y position)) / (5))\n    else\n        change y by (((40) - (y position)) / (10))\n    end\n    if <(SCREEN) = [Sandbox]> then\n        switch costume to (sandbox v)\n        show variable [scale v]\n    else\n        switch costume to (normal v)\n        hide variable [scale v]\n    end\nelse\n    hide\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [set up v]\ngo to [front v] layer\ngo [backward v] (6) layers\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@exit\n\nwhen flag clicked\npoint in direction (90)\nhide\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nshow\ngo to x: (([x position v] of [navigation bar v]) + (110)) y: (([y position v] of [navigation bar v]) + (155))\nif <not <(SCREEN) = [Main Menu]>> then\n    if <touching (mouse-pointer v)?> then\n        change size by (((115) - (size)) / (5))\n        if <mouse down?> then\n            switch costume to (exit v)\n            broadcast (menu confirmation v)\n        end\n    else\n        change size by (((100) - (size)) / (5))\n    end\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@Volume\n\nwhen flag clicked\nset [volume level v] to [100]\nset [costume # v] to [1]\npoint in direction (90)\nhide\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nshow\ngo to x: (([x position v] of [navigation bar v]) + (155)) y: (([y position v] of [navigation bar v]) + (155))\nif <touching (mouse-pointer v)?> then\n    if <mouse down?> then\n        if <(mouse released) = [true]> then\n            broadcast (adjust volume level v)\n            set [mouse released v] to [false]\n            if <(VOLUME LEVEL) = [100]> then\n                set [volume level v] to [66]\n                set [costume # v] to [2]\n            else\n                if <(VOLUME LEVEL) = [66]> then\n                    set [volume level v] to [33]\n                    set [costume # v] to [3]\n                else\n                    if <(VOLUME LEVEL) = [33]> then\n                        set [volume level v] to [0]\n                        set [costume # v] to [4]\n                    else\n                        set [volume level v] to [100]\n                        set [costume # v] to [1]\n                    end\n                end\n            end\n        end\n    else\n        set [mouse released v] to [true]\n    end\n    change size by (((115) - (size)) / (5))\nelse\n    change size by (((100) - (size)) / (5))\nend\nswitch costume to (costume #)\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@Restart\n\nwhen flag clicked\npoint in direction (90)\nhide\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nshow\ngo to x: (([x position v] of [navigation bar v]) + (200)) y: (([y position v] of [navigation bar v]) + (155))\nif <not <(SCREEN) = [Main Menu]>> then\n    if <touching (mouse-pointer v)?> then\n        if <mouse down?> then\n            switch costume to (restart v)\n            broadcast (restart confirmation v)\n        end\n        change size by (((115) - (size)) / (5))\n    else\n        change size by (((100) - (size)) / (5))\n    end\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@Music Notification\n\nwhen flag clicked\nset [start time v] to [0]\nhide\n\nwhen I receive [notify music banner v]\ngo to [front v] layer\nswitch costume to (Song)\ngo to x: (0) y: (-75)\nset [start time v] to (timer)\n\nwhen I receive [tick v]\nUPDATE\n\ndefine UPDATE\nif <((timer) - (start time)) < [3]> then\n    show\n    change y by (((0) - (y position)) / (5))\nelse\n    change y by (((-75) - (y position)) / (5))\n    if <([abs v] of ((-75) - (y position)) ) < [2]> then\n        hide\n    end\nend\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@block effects\n\nwhen flag clicked\nerase all\nhide\n\nwhen I receive [tick v]\nDraw wind particals\nDraw Confetti\n\nwhen I receive [set up v]\ndelete all of [wind particles v]\ndelete all of [confetti v]\n\ndefine Draw wind particals\nset pen color to (#ffffff)\nset [i v] to [0]\nrepeat until <((i) + (1)) > ((length of [wind particles v]) / (6))>\n    change [i v] by (1)\n    set [x v] to (item (((i) * (6)) - (5)) of [wind particles v])\n    set [y v] to ((item (((i) * (6)) - (4)) of [wind particles v]) + (item (((i) * (6)) - (3)) of [wind particles v]))\n    set [speed v] to (item (((i) * (6)) - (2)) of [wind particles v])\n    go to x: (((x) * (SCALE)) - (SCROLL_X)) y: (((y) * (SCALE)) - (SCROLL_Y))\n    if <<([abs v] of ((x position) - (((x) * (SCALE)) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - (((y) * (SCALE)) - (SCROLL_Y))) ) < [1]>> then\n        set pen size to (((6) + (speed)) * (SCALE))\n        set pen (brightness v) to (item (((i) * (6)) - (1)) of [wind particles v])\n        set pen (transparency v) to (item (((i) * (6)) - (0)) of [wind particles v])\n        pen down\n        pen up\n    end\n    replace item (((i) * (6)) - (3)) of [wind particles v] with ((speed) + (item (((i) * (6)) - (3)) of [wind particles v]))\n    if <(item (((i) * (6)) - (3)) of [wind particles v]) > ((300) - ((10) * (speed)))> then\n        replace item (((i) * (6)) - (0)) of [wind particles v] with ((10) + (item (((i) * (6)) - (0)) of [wind particles v]))\n    end\n    if <(item (((i) * (6)) - (3)) of [wind particles v]) > [300]> then\n        repeat (6)\n            delete (((i) * (6)) - (5)) of [wind particles v]\n        end\n        change [i v] by (-1)\n    end\nend\n\ndefine Draw Confetti\nset [j v] to [0]\nrepeat until <((j) + (1)) > ((length of [confetti v]) / (6))>\n    change [j v] by (1)\n    set [confetti x v] to (item (((j) * (6)) - (5)) of [confetti v])\n    set [confetti y v] to ((item (((j) * (6)) - (4)) of [confetti v]) + (item (((j) * (6)) - (3)) of [confetti v]))\n    set [confetti speed v] to (item (((j) * (6)) - (2)) of [confetti v])\n    go to x: (((confetti x) * (SCALE)) - (SCROLL_X)) y: (((confetti y) * (SCALE)) - (SCROLL_Y))\n    if <<([abs v] of ((x position) - (((confetti x) * (SCALE)) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - (((confetti y) * (SCALE)) - (SCROLL_Y))) ) < [1]>> then\n        set pen (saturation v) to (100)\n        set pen (color v) to (item (((j) * (6)) - (0)) of [confetti v])\n        set pen size to (((3) + ([abs v] of (confetti speed) )) * (SCALE))\n        set pen (transparency v) to (item (((j) * (6)) - (1)) of [confetti v])\n        pen down\n        pen up\n    end\n    replace item (((j) * (6)) - (3)) of [confetti v] with ((confetti speed) + (item (((j) * (6)) - (3)) of [confetti v]))\n    if <(item (((j) * (6)) - (3)) of [confetti v]) < ((-200) + ((10) * (confetti speed)))> then\n        replace item (((j) * (6)) - (1)) of [confetti v] with ((10) + (item (((j) * (6)) - (1)) of [confetti v]))\n    end\n    if <(confetti y) < [-200]> then\n        repeat (6)\n            delete (((j) * (6)) - (5)) of [confetti v]\n        end\n        change [j v] by (-1)\n    end\nend\n\n@java portal\n\ndefine Create Portal Particals (x) (y) amount: (amount)\nswitch costume to (costume1 v)\nset [portal x v] to (x)\nset [portal y v] to (y)\nrepeat (amount)\n    switch costume to (costume1 v)\n    add (x) to [portal v]\n    add (y) to [portal v]\n    add (x) to [portal v]\n    add (y) to [portal v]\n    add [0] to [portal v]\n    add [0] to [portal v]\nend\n\nwhen I receive [set up v]\nhide\ndelete all of [portal v]\nif <(SCREEN) = [Main Menu]> then\n    if <(LEVELS COMPLETED) = [7]> then\n        switch costume to (costume1 v)\n        Create Portal Particals [2650] [-50] amount: [150]\n        switch costume to (costume1 v)\n    else\n        Position [2650] [-50]\n        stamp\n        switch costume to (costume2 v)\n        erase all\n    end\nend\nif <(SCREEN) = [Java]> then\n    switch backdrop to (dark gray v)\nend\n\ndefine Position (x) (y)\ngo to x: ((x) - (SCROLL_X)) y: ((y) - (SCROLL_Y))\n\nwhen I receive [tick v]\nTick\n\ndefine Tick\nset [i v] to [0]\nrepeat ((length of [portal v]) / (6))\n    change [i v] by (1)\n    Position (item (((i) * (6)) - (5)) of [portal v]) (item (((i) * (6)) - (4)) of [portal v])\n    if <<([abs v] of ((x position) - ((item (((i) * (6)) - (5)) of [portal v]) - (SCROLL_X))) ) < [1]> and <([abs v] of ((y position) - ((item (((i) * (6)) - (4)) of [portal v]) - (SCROLL_Y))) ) < [1]>> then\n        replace item (((i) * (6)) - (5)) of [portal v] with ((((item (((i) * (6)) - (3)) of [portal v]) - (item (((i) * (6)) - (5)) of [portal v])) / (5)) + (item (((i) * (6)) - (5)) of [portal v]))\n        replace item (((i) * (6)) - (4)) of [portal v] with ((((item (((i) * (6)) - (2)) of [portal v]) - (item (((i) * (6)) - (4)) of [portal v])) / (5)) + (item (((i) * (6)) - (4)) of [portal v]))\n        if <<((item (((i) * (6)) - (3)) of [portal v]) - (item (((i) * (6)) - (5)) of [portal v])) < [2]> and <((item (((i) * (6)) - (2)) of [portal v]) - (item (((i) * (6)) - (4)) of [portal v])) < [2]>> then\n            replace item (((i) * (6)) - (3)) of [portal v] with ((PORTAL X) + (([sin v] of (pick random (0) to (360)) ) * (pick random (0) to (50))))\n            replace item (((i) * (6)) - (2)) of [portal v] with ((PORTAL Y) + (([cos v] of (pick random (0) to (360)) ) * (pick random (0) to (50))))\n        end\n        replace item (((i) * (6)) - (1)) of [portal v] with ((((item (((i) * (6)) - (0)) of [portal v]) - (item (((i) * (6)) - (1)) of [portal v])) / (5)) + (item (((i) * (6)) - (1)) of [portal v]))\n        if <((item (((i) * (6)) - (0)) of [portal v]) - (item (((i) * (6)) - (1)) of [portal v])) < [2]> then\n            replace item (((i) * (6)) - (1)) of [portal v] with (pick random (20) to (80))\n        end\n        set [brightness v] effect to (() - (item (((i) * (6)) - (1)) of [portal v]))\n        Position (item (((i) * (6)) - (5)) of [portal v]) (item (((i) * (6)) - (4)) of [portal v])\n        stamp\n    end\nend\n\n@Java Loading Background\n\nwhen I receive [load java v]\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nbroadcast (loading terminal v)\n\nwhen I receive [java loading fade out v]\nbroadcast (Set Up v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@Java Load Text\n\ndefine Write Text (text) at: (x) (y)\nclear graphic effects\nshow\ngo to x: (x) y: (y)\nset [i v] to [0]\nrepeat (length of (text))\n    change [i v] by (1)\n    switch costume to (letter (i) of (text))\n    create clone of (_myself_ v)\n    set [n v] to [0]\n    if <(letter (i) of (text)) = [ ]> then\n        change x by (10)\n    else\n        change x by (15)\n    end\nend\nhide\n\nwhen I receive [clear text v]\ndelete this clone\n\nwhen I receive [java loading fade out v]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [loading terminal v]\nbroadcast (Clear Text v)\nset [line shift v] to [0]\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nwait (.5) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nwait (.25) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nwait (.1) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nWrite Text (join [    ] [loaded platforms]) at: [-230] (((-100) + (line shift)) - (((4) - (1)) * (25)))\nwait (.1) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nWrite Text (join [    ] [loaded platforms]) at: [-230] (((-100) + (line shift)) - (((4) - (1)) * (25)))\nWrite Text (join [    ] [initiated physics]) at: [-230] (((-100) + (line shift)) - (((5) - (1)) * (25)))\nwait (.4) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nWrite Text (join [    ] [loaded platforms]) at: [-230] (((-100) + (line shift)) - (((4) - (1)) * (25)))\nWrite Text (join [    ] [initiated physics]) at: [-230] (((-100) + (line shift)) - (((5) - (1)) * (25)))\nWrite Text (join [>>>] [set up]) at: [-230] (((-100) + (line shift)) - (((6) - (1)) * (25)))\nwait (.5) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nWrite Text (join [    ] [loaded platforms]) at: [-230] (((-100) + (line shift)) - (((4) - (1)) * (25)))\nWrite Text (join [    ] [initiated physics]) at: [-230] (((-100) + (line shift)) - (((5) - (1)) * (25)))\nWrite Text (join [>>>] [set up]) at: [-230] (((-100) + (line shift)) - (((6) - (1)) * (25)))\nWrite Text (join [    ] [set up complete]) at: [-230] (((-100) + (line shift)) - (((7) - (1)) * (25)))\nwait (.25) seconds\nchange [line shift v] by (25)\nbroadcast (Clear Text v)\nWrite Text (join [>>>] [init process]) at: [-230] (((-100) + (line shift)) - (((1) - (1)) * (25)))\nWrite Text (join [>>>] [load packages]) at: [-230] (((-100) + (line shift)) - (((2) - (1)) * (25)))\nWrite Text (join [    ] [loaded character]) at: [-230] (((-100) + (line shift)) - (((3) - (1)) * (25)))\nWrite Text (join [    ] [loaded platforms]) at: [-230] (((-100) + (line shift)) - (((4) - (1)) * (25)))\nWrite Text (join [    ] [initiated physics]) at: [-230] (((-100) + (line shift)) - (((5) - (1)) * (25)))\nWrite Text (join [>>>] [set up]) at: [-230] (((-100) + (line shift)) - (((6) - (1)) * (25)))\nWrite Text (join [    ] [set up complete]) at: [-230] (((-100) + (line shift)) - (((7) - (1)) * (25)))\nWrite Text (join [    ] [entering game]) at: [-230] (((-100) + (line shift)) - (((8) - (1)) * (25)))\nbroadcast (java loading fade out v)\n\nwhen I receive [notify terminal text v]\nbroadcast (Clear Text v)\nset [line shift v] to [0]\ngo to [front v] layer\nWrite Text (join [>>>] (NOTIFICATION)) at: [-230] (((-160) + (line shift)) - (((1) - (1)) * (25)))\nwait (2) seconds\nbroadcast (Clear Text v)\n\nwhen I start as a clone\nclear graphic effects\nshow\n\n@Terminal\n\nwhen flag clicked\nhide\n\nwhen I receive [notify terminal v]\ngo to x: (0) y: (-50)\nshow\nset [ghost v] effect to (100)\ngo to [front v] layer\nset [start time v] to (timer)\nset [notified v] to [false]\n\nwhen I receive [tick v]\nTick\n\ndefine Tick\nif <((timer) - (start time)) < [2.5]> then\n    if <(y position) < [0]> then\n        change [ghost v] effect by (-5)\n        change y by (5)\n    end\n    if <(y position) = [0]> then\n        if <(notified) = [false]> then\n            broadcast (Notify Terminal Text v)\n            set [notified v] to [true]\n        end\n    end\nelse\n    if <(y position) > [-50]> then\n        change [ghost v] effect by (5)\n        change y by (-5)\n    end\n    if <(y position) = [-50]> then\n        hide\n    end\nend\n\n@Credits\n\nwhen flag clicked\nhide\n\nwhen I receive [credits v]\nset volume to (100) %\nstart sound [Elucidate - PaulRHJT v]\nset [exit v] to [Credits]\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\ngo to [front v] layer\nshow\nbroadcast (fade out volume v)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nbroadcast (Credits Text v) and wait\nwait (1) seconds\nrepeat (10)\n    change [brightness v] effect by (10)\nend\nbroadcast (panther__ Intro v) and wait\ngo to [front v] layer\nbroadcast (thumbnail v)\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\nwait (.5) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@Credits Text\n\nwhen flag clicked\nhide\n\nwhen I receive [credits text v]\nclear graphic effects\ngo to x: (0) y: (-475)\ngo to [front v] layer\nshow\nrepeat until <(y position) = [75]>\n    change y by (1)\nend\nwait (10) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to [front v] layer\n\nwhen I receive [thumbnail v]\nclear graphic effects\ngo to [front v] layer\ngo [backward v] (1) layers\n\nwhen I receive [tick v]\ngo to [front v] layer\n\nwhen I receive [pause tick v]\ngo to [front v] layer\n\nwhen this sprite clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\n\n@clear level\n\nwhen flag clicked\npoint in direction (90)\nhide\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nif <(SCREEN) = [Sandbox]> then\n    show\n    go to x: (([x position v] of [navigation bar v]) + (55)) y: (([y position v] of [navigation bar v]) + (155))\n    if <touching (mouse-pointer v)?> then\n        change size by (((115) - (size)) / (5))\n        if <mouse down?> then\n            switch costume to (trash v)\n            broadcast (delete confirmation v)\n        end\n    else\n        change size by (((100) - (size)) / (5))\n    end\nelse\n    hide\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\n@Confirmation Dialog\n\nwhen I receive [delete confirmation v]\nset [confirmation dialog active v] to [1]\nset [pause v] to [1]\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nwhen I receive [pause tick v]\ngo to [front v] layer\ngo [backward v] (3) layers\nset size to (size) %\nchange [size v] by (((100) - (size)) / (3))\nshow\nif <(CONFIRMATION DIALOG ACTIVE) = [1]> then\n    switch costume to (clear level v)\nelse\n    if <(CONFIRMATION DIALOG ACTIVE) = [2]> then\n        switch costume to (return to menu v)\n    else\n        if <(CONFIRMATION DIALOG ACTIVE) = [3]> then\n            switch costume to (restart level v)\n        else\n            if <(CONFIRMATION DIALOG ACTIVE) = [4]> then\n                switch costume to (replace v)\n            else\n                hide\n            end\n        end\n    end\nend\n\nwhen I receive [tick v]\nif <(size) > [10]> then\n    set size to (size) %\n    change [size v] by (((0) - (size)) / (3))\nelse\n    hide\nend\n\nwhen I receive [confirmed v]\nif <(CONFIRMATION RETURN) = [yes]> then\n    if <(CONFIRMATION DIALOG ACTIVE) = [1]> then\n        delete all of [sandbox level v]\n        broadcast (Set Up v)\n    else\n        if <(CONFIRMATION DIALOG ACTIVE) = [2]> then\n            set [screen v] to [Main Menu]\n            broadcast (Main Menu v) and wait\n            broadcast (Loading Screen v)\n        else\n            if <(CONFIRMATION DIALOG ACTIVE) = [3]> then\n                broadcast (Set Up v)\n            else\n                if <(CONFIRMATION DIALOG ACTIVE) = [4]> then\n                    broadcast (import level v)\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [menu confirmation v]\nset [confirmation dialog active v] to [2]\nset [pause v] to [1]\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nwhen I receive [restart confirmation v]\nset [confirmation dialog active v] to [3]\nset [pause v] to [1]\ngo to [front v] layer\ngo to x: (0) y: (0)\n\nwhen I receive [replace confirmation v]\nset [confirmation dialog active v] to [4]\nset [pause v] to [1]\ngo to [front v] layer\ngo to x: (0) y: (0)\n\n@pause overlay\n\nwhen I receive [tick v]\ngo to [front v] layer\ngo [backward v] (4) layers\nif <(size) > [10]> then\n    set size to (size) %\n    set [ghost v] effect to (effect)\n    change [size v] by (((0) - (size)) / (3))\n    change [effect v] by (((100) - (effect)) / (3))\nelse\n    hide\n    set [size v] to [0]\n    set [effect v] to [100]\nend\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\n\nwhen I receive [pause tick v]\ngo to [front v] layer\ngo [backward v] (4) layers\nset size to (size) %\nset [ghost v] effect to (effect)\nshow\nchange [size v] by (((100) - (size)) / (3))\nchange [effect v] by (((50) - (effect)) / (3))\n\n@Confirmation Yes\n\nwhen I receive [pause tick v]\nif <(CONFIRMATION DIALOG ACTIVE) > [0]> then\n    go to [front v] layer\n    go to x: ((-40) * ((size) / (100))) y: ((-15) * ((size) / (100)))\n    set size to (size) %\n    if <touching (mouse-pointer v)?> then\n        change [size v] by (((115) - (size)) / (3))\n        if <mouse down?> then\n            set [confirmation return v] to [yes]\n            broadcast (Confirmed v) and wait\n            set [confirmation dialog active v] to [0]\n            set [pause v] to [-1]\n        end\n    else\n        change [size v] by (((100) - (size)) / (3))\n    end\n    show\nelse\n    hide\nend\n\nwhen I receive [tick v]\nif <(size) > [10]> then\n    set size to (size) %\n    change [size v] by (((0) - (size)) / (3))\nelse\n    hide\nend\n\n@Confirmation Yes2\n\nwhen I receive [pause tick v]\nif <(CONFIRMATION DIALOG ACTIVE) > [0]> then\n    go to [front v] layer\n    go to x: ((40) * ((size) / (100))) y: ((-15) * ((size) / (100)))\n    set size to (size) %\n    if <touching (mouse-pointer v)?> then\n        change [size v] by (((115) - (size)) / (3))\n        if <mouse down?> then\n            set [confirmation return v] to [no]\n            broadcast (Confirmed v) and wait\n            set [confirmation dialog active v] to [0]\n            set [pause v] to [-1]\n        end\n    else\n        change [size v] by (((100) - (size)) / (3))\n    end\n    show\nelse\n    hide\nend\n\nwhen I receive [tick v]\nif <(size) > [10]> then\n    set size to (size) %\n    change [size v] by (((0) - (size)) / (3))\nelse\n    hide\nend\n\n@import level\n\nwhen flag clicked\npoint in direction (90)\nhide\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nif <(SCREEN) = [Sandbox]> then\n    show\n    go to x: (([x position v] of [navigation bar v]) + (10)) y: (([y position v] of [navigation bar v]) + (155))\n    if <touching (mouse-pointer v)?> then\n        change size by (((115) - (size)) / (5))\n        if <mouse down?> then\n            switch costume to (import v)\n            ask [Paste your level code here] and wait\n            if <(answer) > []> then\n                set [import level code v] to (answer)\n                broadcast (Check if valid save code v) and wait\n                if <(SAVE CODE VALIDITY) = [valid]> then\n                    broadcast (replace confirmation v)\n                end\n            end\n        end\n    else\n        change size by (((100) - (size)) / (5))\n    end\nelse\n    hide\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [loading screen v]\nhide\n\nwhen I receive [load java v]\nhide\n\nif <(SCREEN) = [Sandbox]> then\nelse\n    hide\nend\n\n@save level\n\nwhen flag clicked\npoint in direction (90)\nhide\nhide variable [scale v]\nshow list [copy this to save your level v]\n\nwhen I receive [pause tick v]\nUPDATE\n\nwhen I receive [set up v]\npoint in direction (90)\ngo to [front v] layer\n\ndefine UPDATE\nif <(SCREEN) = [Sandbox]> then\n    show\n    go to x: (([x position v] of [navigation bar v]) + (-35)) y: (([y position v] of [navigation bar v]) + (155))\n    if <touching (mouse-pointer v)?> then\n        change size by (((115) - (size)) / (5))\n        if <mouse down?> then\n            switch costume to (save v)\n            broadcast (save level v)\n        end\n    else\n        change size by (((100) - (size)) / (5))\n    end\nelse\n    hide\nend\n\nwhen I receive [tick v]\nUPDATE\n\nwhen I receive [load java v]\nhide\n\nwhen I receive [loading screen v]\nhide\n\n@hide save file\n\nwhen flag clicked\nhide\n\nwhen I receive [save level v]\ngo to x: (-220) y: (-85)\nshow\n\nwhen I receive [tick v]\nif <<mouse down?> and <touching (mouse-pointer v)?>> then\n    hide\n    show list [copy this to save your level v]\nend\n\n@Invalid Level Code Notification\n\nwhen flag clicked\nhide\n\nwhen I receive [notify load error v]\nshow\ngo to [front v] layer\nset size to (0) %\nrepeat (5)\n    change size by (((100) - (size)) / (3))\nend\nwait (1) seconds\nrepeat (5)\n    change size by (((0) - (size)) / (3))\nend\nhide\n\n@Sandbox Trash\n\nwhen flag clicked\ngo to x: (0) y: (-150)\nhide\nset [master v] to [0]\ncreate clone of (_myself_ v)\nset [master v] to [1]\n\nwhen I receive [tick v]\nif <(SANDBOX - GRABBING BLOCK) = [1]> then\n    show\n    if <(master) = [1]> then\n        go to [front v] layer\n        set size to (100) %\n        switch costume to (trash icon v)\n        change y by (((-150) - (y position)) / (5))\n    else\n        if <(distance to [mouse-pointer v]) < [50]> then\n            change [effect size v] by (((150) - (effect size)) / (10))\n        else\n            change [effect size v] by (((90) - (effect size)) / (3))\n        end\n        change y by (((-150) - (y position)) / (5))\n        go to [front v] layer\n        go [backward v] (1) layers\n        set size to (effect size) %\n        switch costume to (effect circle v)\n    end\nelse\n    if <(master) = [1]> then\n        go to [front v] layer\n    else\n        go to [front v] layer\n        go [backward v] (1) layers\n    end\n    change [effect size v] by (((90) - (effect size)) / (20))\n    change y by (((-200) - (y position)) / (5))\n    if <(y position) < [-180]> then\n        hide\n    end\nend\n\n@dots\n\nwhen I receive [tick v]\nset pen size to ((2) * (SCALE))\nDraw Dots\n\ndefine Draw Dots\nset [x v] to [-9]\nrepeat (18)\n    set [y v] to [-8]\n    repeat (16)\n        go to x: ((((round ((SCROLL_X) / (30))) * (30)) * (SCALE)) - ((SCROLL_X) - ((x) * (30)))) y: (((round ((SCROLL_Y) / (30))) * (30)) - ((SCROLL_Y) - ((y) * (30))))\n        if <<([abs v] of ((x position) - ((((round ((SCROLL_X) / (30))) * (30)) * (SCALE)) - ((SCROLL_X) - ((x) * (30))))) ) < [1]> and <([abs v] of ((y position) - (((round ((SCROLL_Y) / (30))) * (30)) - ((SCROLL_Y) - ((y) * (30))))) ) < [1]>> then\n            set pen color to (#bdbdbd)\n            set pen (transparency v) to (50)\n            pen down\n            pen up\n        end\n        change [y v] by (1)\n    end\n    change [x v] by (1)\nend\n\n@water\n\nwhen I receive [tick v]\ngo to x: (0) y: ((((-1000) * (SCALE)) - (SCROLL_Y)) + (([sin v] of ((timer) * (100)) ) * ((10) * (SCALE))))\nset [ghost v] effect to (50)\nif <((y position) - ((((-1000) * (SCALE)) - (SCROLL_Y)) + (([cos v] of ((timer) * (100)) ) * ((10) * (SCALE))))) < [20]> then\n    show\nelse\n    hide\nend\n\n
now u can fly XD\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nControls\n-Arrow Keys or WASD to Move\n-Up arrow key or w key to fly\n-E to activate certain blocks\n-1-3 / click to select block in Inventory\n-P to pause game\n-N to go to the next music track\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nSANDBOX MODE\n-m to toggle placing blocks\n-scroll to select blocks\n-click and drag blocks to reposition them