Frictionless - ReColor - Halloween Platformer
@Stage\n\nwhen I receive [green flag v]\nset volume to ((VOLUME LEVEL) / (2)) %\nswitch backdrop to (white v)\nset [song v] to [1]\nhide variable [timer v]\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 [timer v] to ((((days since 2000) * (86400000)) - (START TIME IN MS)) / (1000))\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?>> and <(in air) < [4]>> then\n    set [yv v] to [16]\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\nset [start time in ms v] to ((days since 2000) * (86400000))\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\nset [level v] to [0]\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]\nhide variable [scale v]\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\nwhen I receive [set up v]\nReset\n\nset [☁ level1 record v] to [999]\nset [☁ level2 record v] to [999]\nset [☁ level3 record v] to [999]\nset [☁ level4 record v] to [999]\nset [☁ level5 record v] to [999]\nset [☁ level6 record v] to [999]\nset [☁ level7 record v] to [999]\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 Records\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                                                                                                                                    else\n                                                                                                                                        if <(id) = [49]> then\n                                                                                                                                            set [start time in ms v] to ((days since 2000) * (86400000))\n                                                                                                                                            show variable [timer 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\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) + (SCROLL_X)) / (SCALE))\n                        set [new bug y v] to (((mouse y) + (SCROLL_Y)) / (SCALE))\n                        broadcast (new bug v)\n                        add (PLACING BLOCK) to [sandbox level v]\n                        add (((mouse x) + (SCROLL_X)) / (SCALE)) to [sandbox level v]\n                        add (((mouse y) + (SCROLL_Y)) / (SCALE)) 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 (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\ndefine Set Records\nif <not <(username) = [panther__]>> then\n    if <<(LEVEL) = [1]> and <(TIMER) < (☁ LEVEL1 RECORD)>> then\n        set [☁ level1 record v] to (TIMER)\n    else\n        if <<(LEVEL) = [2]> and <(TIMER) < (☁ LEVEL2 RECORD)>> then\n            set [☁ level2 record v] to (TIMER)\n        else\n            if <<(LEVEL) = [3]> and <(TIMER) < (☁ LEVEL3 RECORD)>> then\n                set [☁ level3 record v] to (TIMER)\n            else\n                if <<(LEVEL) = [4]> and <(TIMER) < (☁ LEVEL4 RECORD)>> then\n                    set [☁ level4 record v] to (TIMER)\n                else\n                    if <<(LEVEL) = [5]> and <(TIMER) < (☁ LEVEL5 RECORD)>> then\n                        set [☁ level5 record v] to (TIMER)\n                    else\n                        if <<(LEVEL) = [6]> and <(TIMER) < (☁ LEVEL6 RECORD)>> then\n                            set [☁ level6 record v] to (TIMER)\n                        else\n                            if <<(LEVEL) = [7]> and <(TIMER) < (☁ LEVEL7 RECORD)>> then\n                                set [☁ level7 record v] to (TIMER)\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\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) (NEW BUG Y)\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\nbroadcast (DEV - Refresh Objects v) and wait\n\nwhen I start as a clone\nshow\n\ndefine Position\ngo to x: ((x) - (SCROLL_X)) y: ((y) - (SCROLL_Y))\n\nwhen flag clicked\nhide\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 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 I receive [set up v]\nif  then\n    delete this clone\nend\nif <(SCREEN) = [Main Menu]> then\n    Create Comment [2] [0] [100]\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\n@loading background\n\nwhen I receive [loading screen v]\nhide variable [timer 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]\nif < (SCREEN) contains [LEVEL]?> then\n    show variable [timer v]\nend\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 [10]\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)\nset [portal x v] to (x)\nset [portal y v] to (y)\nrepeat (amount)\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    Create Portal Particals [2650] [-50] amount: [150]\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 (5) seconds\nrepeat until <(y position) = [735]>\n    change y by (1)\nend\nwait (3) 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\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@Records\n\nwhen I receive [set up v]\nif  then\n    delete this clone\nend\nif <(SCREEN) = [Main Menu]> then\n    Create Record [1] [300] [120]\n    Create Record [2] [650] [120]\n    Create Record [3] [1000] [120]\n    Create Record [4] [1350] [120]\n    Create Record [5] [1700] [120]\n    Create Record [6] [2050] [120]\n    Create Record [7] [2400] [120]\nend\n\ndefine Create Record (id) (x) (y)\nset [id v] to (id)\nset [x v] to (x)\nset [y v] to (y)\nset [type v] to [number]\nset [# v] to [0]\nrepeat (6)\n    change [# v] by (1)\n    create clone of (_myself_ v)\nend\nset [type v] to [counter]\ncreate clone of (_myself_ v)\nset [type v] to [master]\nhide\n\nwhen I receive [tick v]\nif <(type) = [counter]> then\n    Position (x) (y)\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 (join [Counter] (id))\n        go to [back v] layer\n        show\n    else\n        hide\n    end\nelse\n    if <(type) = [number]> then\n        Get my record\n        if <not <(length of (a)) < (#)>> then\n            Position (((x) + ((15) * (#))) + ((40) - ((7.5) * (length of (a))))) (y)\n            switch costume to (letter (#) of (a))\n            go to [front v] layer\n            go [backward v] (2) layers\n            show\n        else\n            hide\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\ndefine Position (x) (y)\ngo to x: ((x) - (SCROLL_X)) y: ((y) - (SCROLL_Y))\n\nwhen I start as a clone\nshow\n\nbroadcast (DEV - Refresh Objects v) and wait\n\ndefine Get my record\nif <(id) = [1]> then\n    set [a v] to (☁ LEVEL1 RECORD)\nelse\n    if <(id) = [2]> then\n        set [a v] to (☁ LEVEL2 RECORD)\n    else\n        if <(id) = [3]> then\n            set [a v] to (☁ LEVEL3 RECORD)\n        else\n            if <(id) = [4]> then\n                set [a v] to (☁ LEVEL4 RECORD)\n            else\n                if <(id) = [5]> then\n                    set [a v] to (☁ LEVEL5 RECORD)\n                else\n                    if <(id) = [6]> then\n                        set [a v] to (☁ LEVEL6 RECORD)\n                    else\n                        set [a v] to (☁ LEVEL7 RECORD)\n                    end\n                end\n            end\n        end\n    end\nend\n\n
⭐️Be the first to see: https://scratch.mit.edu/projects/724489227 ⭐️\n(the next part of this series!)\n\n~~~~~~~~~~~~~~~~~•Darkside•~~~~~~~~~~~~~~~~\n\nAfter hard work and a few mental break downs (AGAIN)…\nI can present: Darkside! Darkside is a completely mobile friendly multiplayer! With a lots of art details and cool level design! I hope you enjoy! :D\n\n•CONTROLS:\narrow keys; w, a, d and with your finger!\n\n•Be the fastest player and dodge the spikes and the lava!\n•I know that there are a few easy levels but I just made it a bit easier the multi town because a lots of people wanted to have a easier part!\n\n•CHAT: Click on the chat button to open it! Press the keys 1 - 10 to write some words! To close you need to press SPACE button!\n\n•I hope we can get this trending again! :D\n\nIf you want to have more of this cool platformers or other projects the leave a ⭐️&❤️ and a follow!\nBye I am @frolicking_cat