☆Minecraft Platformer☆ネザー編

Instructions: ------FEATURED 7/20/23--------\n-Advertise is allowed if you heart and star!\n4000 hearts! :D I might do a part 2 now!\n-IF YOU NEED HELP with some tricky levels, scroll down\n\nFirst of all, this took me 100+ HOURS so please like and favorite if you enjoy it.\n\n☆ Welcome to ancient Egypt! ☆\n\nDuring your stay you will:\n△	Embark on a quest to stop the Evil God, Set, from becoming an all-powerful ruler of the world. \n△	Collect artifacts along the way.\n△	Learn about ancient Egypt in the "Learn" feature in the main menu.\n\nINSTRUCTIONS:\n△	SMACK THAT FLAG!!! (I recommend multiple times)\n△	Click the "Learn" button to learn about ancient Egypt.\n△	Use arrow keys or WASD to move around, jump, and crouch. If you are mobile, use the joystick.\n△	Basically a normal platformer, including Wall Jumping, Spikes/Lava, Enemies, Cut scenes, and a boss battle.\n△	Collect artifacts along the journey.\n△	Go to https://turbowarp.org/855260732 for less lag.\n\nIF YOU NEED HELP (to get past tricky parts):\n△	To get past the locked door, find the key. It is behind the dinosaur level. Then go back and walk through the door. It should disappear, letting you continue.\n△	To get through the lights out part, use the map. Up means the top way and down means the bottom way. One of them is a very far down, which you need to go to the bottom left and crouch into a secret way.\n△	To get past the flower part, jump onto the flower to open it. Then go to the previous level and go the top route to get to the platform above. Jump onto the flower from up there to get a boost over the wall.\n△	To beat the boss, dodge the mummy and lightning until the mummy's hat falls off. You can jump on it then. Repeat 7 times until Set's energy is depleted.\n\nExtra Features:\n△	Text to speech (optional)\n△	Cool sound effects\n△	Great music from Pikmin 3\n\n△	In Vietnamese: https://scratch.mit.edu/projects/876733975/\n\nPlease tell me if I have any other typos or bugs, I would rather fix them than have my game broken.\n\nCredits:\n△	@Griffpatch for the platformer tutorial, joystick tutorial, layering tutorial, and even more tutorials\n△	 Google/Safari for various images\n△	 (Most) art by me\n△	 Thumbnail font from textstudio.com\n△	 Tested by my little brothers\n△	 Main Music: Garden of Hope from Pikmin 3\n△	 Boss battle Music: Golden Arachnorb Battle from Pikmin 3\n△	 Everything else by me :)\n\nTags:\n#platformer #platform #egypt #games #trending #all #quest #fun #mummy #secret #pyramids #ancient #epic #game #story #education #learn #history #platformer #platform #egypt #games #trending #all #quest #fun #mummy #secret #pyramids #ancient #epic #game #story #education #learn #history #platformer #platform #egypt #games #trending #all #quest #fun #mummy #secret #pyramids #ancient #epic #game #story #education #learn #history \n#platformer #platform #egypt #games #trending #all #quest #fun #mummy #secret #pyramids #ancient #epic #game #story #education #learn #history \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nYOU FOUND A CLUE TO THE SECRET!\nOne of my friends asked me to include his name somewhere in this game. It could be anywhere! Costumes, code, general text, or anything. And before you ask... it isn't Matt (or Set). If you find it, comment on my profile for a follow!

@Stage\n\nwhen flag clicked\nforever\n    if <<(@LEVEL.id) = [2]> or <(@LEVEL.id) = [3]>> then\n        switch backdrop to (2 v)\n    else\n        switch backdrop to (1 v)\n    end\nend\n\nwhen flag clicked\nforever\n    set volume to (25) %\n    if <(pick random (1) to (2)) = [1]> then\n        play sound [Floating v] until done\n        play sound [Elektronomia_JJD_Free_NCS_Release_ v] until done\n    else\n        play sound [Elektronomia_JJD_Free_NCS_Release_ v] until done\n        play sound [Floating v] until done\n    end\nend\n\nwhen flag clicked\nforever\n    change [tick v] by (1)\nend\n\nwhen flag clicked\nset [temporary-platform-x-rot v] to [0]\nforever\n    wait (1.5) seconds\n    repeat (20)\n        change [temporary-platform-x-rot v] by (0.05)\n    end\n    wait (0.5) seconds\n    repeat (20)\n        change [temporary-platform-x-rot v] by (-0.05)\n    end\n    wait (1.5) seconds\nend\n\nwhen flag clicked\nset [@fps v] to [31]\nforever\n    set [_tick v] to (tick)\n    wait (1) seconds\n    set [@fps v] to ((tick) - (_tick))\nend\n\n@b l a n k\n\n@3D Platformer Engine by @TimMcCool\n\ndefine Joystick\ngo to x: (((item (1) of [screen size v]) * (-1)) + (50)) y: (-130)\nset rotation style [all around v]\npoint in direction (90)\nclear graphic effects\nswitch costume to (jump v)\nset size to (24) %\nset [ghost v] effect to (40)\nif <(joystick active?) = [0]> then\n    if <<mouse down?> and <touching (mouse-pointer v)?>> then\n        set [joystick active? v] to [1]\n        set [joystick jump impulse v] to [1]\n    end\nend\nstamp\ngo to x: (((item (1) of [screen size v]) * (1)) + (-50)) y: (-130)\nswitch costume to (joystick v)\nstamp\nset [ghost v] effect to (5)\nif <(joystick active?) = [0]> then\n    if <<mouse down?> and <touching (mouse-pointer v)?>> then\n        set [joystick active? v] to [1]\n        set [joystick jump impulse v] to [0]\n    end\nend\nif <(joystick active?) = [1]> then\n    if <mouse down?> then\n        if <(joystick jump impulse) = [1]> then\n            go to x: (((item (1) of [screen size v]) * (-1)) + (50)) y: (-130)\n        end\n        set rotation style [all around v]\n        point towards (mouse-pointer v)\n        set [joystick dir v] to (round (direction))\n        if <(distance to [mouse-pointer v]) > [20]> then\n            move (20) steps\n        else\n            move (distance to [mouse-pointer v]) steps\n        end\n        set size to (12) %\n        stamp\n    else\n        set [joystick active? v] to [0]\n        set [joystick jump impulse v] to [0]\n    end\nelse\n    set rotation style [all around v]\n    point towards (mouse-pointer v)\n    set size to (12) %\n    stamp\nend\npoint in direction (90)\nclear graphic effects\nhide\nswitch costume to (costume2 v)\nset size to (1e10) %\nswitch costume to (costume1 v)\n\ndefine Fill Tri (x0) (y0) (x1) (y1) (x2) (y2) (outline)\nset [_tri2 v] to ([sqrt v] of ((((x1) - (x2)) * ((x1) - (x2))) + (((y1) - (y2)) * ((y1) - (y2)))) )\nset [_tri3 v] to ([sqrt v] of ((((x0) - (x2)) * ((x0) - (x2))) + (((y0) - (y2)) * ((y0) - (y2)))) )\nset [_tri4 v] to ([sqrt v] of ((((x0) - (x1)) * ((x0) - (x1))) + (((y0) - (y1)) * ((y0) - (y1)))) )\nset [_tri1 v] to (((_tri2) + ((_tri3) + (_tri4))) / (2))\nset [_tri0 v] to ((2) * ([sqrt v] of ((((_tri1) - (_tri2)) * (((_tri1) - (_tri3)) * ((_tri1) - (_tri4)))) / (_tri1)) ))\nchange [_tri1 v] by (_tri1)\ngo to x: (((((_tri2) * (x0)) + ((_tri3) * (x1))) + ((_tri4) * (x2))) / (_tri1)) y: (((((_tri2) * (y0)) + ((_tri3) * (y1))) + ((_tri4) * (y2))) / (_tri1))\nset pen size to (_tri0)\npen down\nif <(_tri0) > [0]> then\n    if <<(_tri3) < (_tri2)> or <(_tri4) < (_tri2)>> then\n        if <<(_tri2) < (_tri3)> or <(_tri4) < (_tri3)>> then\n            set [_tri1 v] to ((x position) - (x2))\n            set [_tri2 v] to ((y position) - (y2))\n        else\n            set [_tri1 v] to ((x position) - (x1))\n            set [_tri2 v] to ((y position) - (y1))\n        end\n    else\n        set [_tri1 v] to ((x position) - (x0))\n        set [_tri2 v] to ((y position) - (y0))\n    end\n    set [_tri1 v] to (([sqrt v] of (((_tri1) * (_tri1)) + ((_tri2) * (_tri2))) ) / ((_tri0) / (2)))\n    set [_tri8 v] to (((_tri1) * (outline)) / ((_tri1) - (1)))\n    set [_tri1 v] to ((0.5) - ((0.5) / (_tri1)))\n    set [_tri2 v] to (((x position) - (x0)) / (_tri0))\n    set [_tri3 v] to (((y position) - (y0)) / (_tri0))\n    set [_tri4 v] to (((x position) - (x1)) / (_tri0))\n    set [_tri5 v] to (((y position) - (y1)) / (_tri0))\n    set [_tri6 v] to (((x position) - (x2)) / (_tri0))\n    set [_tri7 v] to (((y position) - (y2)) / (_tri0))\n    repeat until <(_tri0) < (_tri8)>\n        set [_tri0 v] to ((_tri1) * (_tri0))\n        set pen size to ((_tri0) + (.5))\n        go to x: ((x0) + ((_tri0) * (_tri2))) y: ((y0) + ((_tri0) * (_tri3)))\n        go to x: ((x1) + ((_tri0) * (_tri4))) y: ((y1) + ((_tri0) * (_tri5)))\n        go to x: ((x2) + ((_tri0) * (_tri6))) y: ((y2) + ((_tri0) * (_tri7)))\n        go to x: ((x0) + ((_tri0) * (_tri2))) y: ((y0) + ((_tri0) * (_tri3)))\n        change pen (brightness v) by (2)\n    end\nend\nset pen size to (outline)\ngo to x: (x0) y: (y0)\ngo to x: (x1) y: (y1)\ngo to x: (x2) y: (y2)\ngo to x: (x0) y: (y0)\npen up\n\ndefine Render Objects\nset [i v] to [0]\nrepeat (length of [objectx1 v])\n    change [i v] by (1)\n    set [ax v] to [0]\n    set [ay v] to [0]\n    set [az v] to [0]\n    set pen color to (item (i) of [color v])\n    change pen (brightness v) by (((item (i) of [__object_distance v]) * (-0.05)) + (20))\n    set [_color v] to (item (i) of [color v])\n    set [_brightness v] to (((item (i) of [__object_distance v]) * (-0.05)) + (20))\n    set [ax rotation v] to [0]\n    set [az rotation v] to [0]\n    set [ay rotation v] to [0]\n    if <(item (i) of [object type v]) = [shadow]> then\n        (3D) Go to (item (i) of [objectx1 v]) ((item (i) of [objecty1 v]) + ()) (item (i) of [objectz1 v]) render [0] perspective_proj [1] rotation_mode [1] object_mode [] sort []\n        go to x: (x) y: (y)\n        set pen color to (#000000)\n        set pen (transparency v) to ((50) + (((player y) - (item (i) of [objecty1 v])) / (3)))\n        set pen size to ((25) + (((player y) - (item (i) of [objecty1 v])) / (4)))\n        pen down\n        pen up\n    else\n        if <(item (i) of [object type v]) = [coin]> then\n            delete all of [platform:corners v]\n            set pen size to (2.5)\n            if <(item (i) of [objectz2 v]) = [collected]> then\n                (3D) Go to (item (i) of [objectx1 v]) ((item (i) of [objecty1 v]) + (((____coin_removed_size) - (100)) / (2.5))) (item (i) of [objectz1 v]) render [0] perspective_proj [1] rotation_mode [1] object_mode [] sort []\n            else\n                (3D) Go to (item (i) of [objectx1 v]) ((item (i) of [objecty1 v]) + ()) (item (i) of [objectz1 v]) render [0] perspective_proj [1] rotation_mode [1] object_mode [] sort []\n            end\n            add (x) to [platform:corners v]\n            add (y) to [platform:corners v]\n            if <not <[platform:corners v] contains [!]?>> then\n                clear graphic effects\n                go to x: (x) y: (y)\n                switch costume to (join [coin] (______coin_frame))\n                if <(item (i) of [objectz2 v]) = [collected]> then\n                    set size to (((86) - (((item (i) of [__object_distance v]) - (320)) * (0.15))) * ((____coin_removed_size) / (100))) %\n                    set [ghost v] effect to ((____coin_removed_size) - (100))\n                else\n                    set size to ((86) - (((item (i) of [__object_distance v]) - (320)) * (0.15))) %\n                end\n                change [brightness v] effect by (((_brightness) * (4.5)) - (10))\n                stamp\n                switch costume to (costume2 v)\n                set size to (1e10) %\n                switch costume to (costume1 v)\n            end\n        else\n            if <(item (i) of [object_hitbox_reference v]) = []> then\n                delete all of [platform:corners v]\n                set pen size to (2.5)\n                (3D) Go to (item (i) of [objectx1 v]) (item (i) of [objecty1 v]) (item (i) of [objectz1 v]) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                add (x) to [platform:corners v]\n                add (y) to [platform:corners v]\n                (3D) Go to (item (i) of [objectx2 v]) (item (i) of [objecty2 v]) (item (i) of [objectz2 v]) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                add (x) to [platform:corners v]\n                add (y) to [platform:corners v]\n                (3D) Go to (item (i) of [objectx3 v]) (item (i) of [objecty3 v]) (item (i) of [objectz3 v]) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                add (x) to [platform:corners v]\n                add (y) to [platform:corners v]\n                if <not <[platform:corners v] contains [!]?>> then\n                    Fill Tri (item (1) of [platform:corners v]) (item (2) of [platform:corners v]) (item (3) of [platform:corners v]) (item (4) of [platform:corners v]) (item (5) of [platform:corners v]) (item (6) of [platform:corners v]) (@render quality)\n                end\n            else\n                if <(item (i) of [object_hitbox_reference v]) = [line]> then\n                    set pen color to (item (i) of [color v])\n                    set pen size to (item (i) of [objectz3 v])\n                    change pen size by (((item (i) of [__object_distance v]) - (320)) * (-0.01))\n                    (3D) Go to (item (i) of [objectx1 v]) (item (i) of [objecty1 v]) (item (i) of [objectz1 v]) render [1] perspective_proj [1] rotation_mode [1] object_mode [] sort []\n                    (3D) Go to (item (i) of [objectx2 v]) (item (i) of [objecty2 v]) (item (i) of [objectz2 v]) render [1] perspective_proj [1] rotation_mode [1] object_mode [] sort []\n                    pen up\n                else\n                    set [u v] to (i)\n                    set [i v] to (item (u) of [object_hitbox_reference v])\n                    set [ax rotation v] to (item (i) of [hitbox_x_rotation v])\n                    set [az rotation v] to (item (i) of [hitbox_z_rotation v])\n                    set [ay rotation v] to (item (i) of [hitbox_y_rotation v])\n                    delete all of [platform:corners v]\n                    (3D) Go to ((item (i) of [hitboxx v]) + (item (i) of [hitboxxl v])) (item (i) of [hitboxy v]) (item (i) of [hitboxz v]) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                    add (x) to [platform:corners v]\n                    add (y) to [platform:corners v]\n                    (3D) Go to ((item (i) of [hitboxx v]) + (item (i) of [hitboxxl v])) (item (i) of [hitboxy v]) ((item (i) of [hitboxz v]) + (item (i) of [hitboxzl v])) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                    add (x) to [platform:corners v]\n                    add (y) to [platform:corners v]\n                    (3D) Go to (item (i) of [hitboxx v]) (item (i) of [hitboxy v]) ((item (i) of [hitboxz v]) + (item (i) of [hitboxzl v])) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                    add (x) to [platform:corners v]\n                    add (y) to [platform:corners v]\n                    (3D) Go to (item (i) of [hitboxx v]) (item (i) of [hitboxy v]) (item (i) of [hitboxz v]) render [0] perspective_proj [] rotation_mode [1] object_mode [] sort []\n                    add (x) to [platform:corners v]\n                    add (y) to [platform:corners v]\n                    if <not <[platform:corners v] contains [!]?>> then\n                        if <<(item (u) of [object type v]) = [hitboxIndependentTexture]> or < (((item (i) of [hitboxz v]) + (item (i) of [hitboxx v])) / (100)) contains [.]?>> then\n                            Fill Tri (item (1) of [platform:corners v]) (item (2) of [platform:corners v]) (item (5) of [platform:corners v]) (item (6) of [platform:corners v]) (item (7) of [platform:corners v]) (item (8) of [platform:corners v]) (@render quality)\n                            set pen color to (_color)\n                            change pen (brightness v) by (_brightness)\n                            Fill Tri (item (1) of [platform:corners v]) (item (2) of [platform:corners v]) (item (3) of [platform:corners v]) (item (4) of [platform:corners v]) (item (5) of [platform:corners v]) (item (6) of [platform:corners v]) (@render quality)\n                        else\n                            Fill Tri (item (1) of [platform:corners v]) (item (2) of [platform:corners v]) (item (3) of [platform:corners v]) (item (4) of [platform:corners v]) (item (7) of [platform:corners v]) (item (8) of [platform:corners v]) (@render quality)\n                            set pen color to (_color)\n                            change pen (brightness v) by (_brightness)\n                            Fill Tri (item (3) of [platform:corners v]) (item (4) of [platform:corners v]) (item (5) of [platform:corners v]) (item (6) of [platform:corners v]) (item (7) of [platform:corners v]) (item (8) of [platform:corners v]) (@render quality)\n                        end\n                    end\n                    set [i v] to (u)\n                end\n            end\n        end\n    end\nend\n\ndefine (3D) Go to (x) (y) (z) render (render) perspective_proj (perspective_proj) rotation_mode (rotation_mode) object_mode (object_mode) sort (sort)\nP = (x) (y) (z)\nif <(object_mode) = [1]> then\n    P = Rotate (x) (y) (z) angle (aX rotation) axis [x]\n    P = Rotate (x) (y) (z) angle (aZ rotation) axis [z]\n    P = Rotate (x) (y) (z) angle (aY rotation) axis [y]\nelse\n    if <(rotation_mode) = [1]> then\n        if <not <<(aX rotation) = []> and <<(aY rotation) = []> and <(aZ rotation) = []>>>> then\n            P = Translate (x) (y) (z) by ((item (i) of [hitboxx v]) * (-1)) ((item (i) of [hitboxy v]) * (-1)) ((item (i) of [hitboxz v]) * (-1))\n            P = Rotate (x) (y) (z) angle (aY rotation) axis [y]\n            P = Rotate (x) (y) (z) angle (aX rotation) axis [x]\n            P = Rotate (x) (y) (z) angle (aZ rotation) axis [z]\n            P = Translate (x) (y) (z) by ((item (i) of [hitboxx v]) * (1)) ((item (i) of [hitboxy v]) * (1)) ((item (i) of [hitboxz v]) * (1))\n        end\n    end\n    if <not <(perspective_proj) = [0]>> then\n        P = Translate (x) (y) (z) by (aX) (aY) (aZ)\n    end\n    if <(sort) = [1]> then\n    P = Translate (x) (y) (z) by ((scroll x) * (-1)) ((scroll y) * (-1)) ((scroll z) * (-1))\n    P = Rotate (x) (y) (z) angle (y_angle) axis [y]\n    P = Rotate (x) (y) (z) angle (x_angle) axis [x]\n    if <(perspective_proj) = [0]> then\n    if <not <(perspective_proj) = [0]>> then\n        P = Translate (x) (y) (z) by [] [] [-200]\n        P = Perspective Protection of (x) (y) (z) with focal length (zoom)\n    end\n    if <(render) = [1]> then\n        if <(z) = [!]> then\n            pen up\n        else\n            go to x: (x) y: (y)\n            pen down\n        end\n    end\n    if <(z) = [!]> then\n        set [y v] to [!]\n    end\nend\n\ndefine P = Rotate (x) (y) (z) angle (angle) axis (axis)\nif <(axis) = [x]> then\n    set [x v] to (x)\n    set [y v] to (((y) * ([cos v] of (angle) )) - ((z) * ([sin v] of (angle) )))\n    set [z v] to (((y) * ([sin v] of (angle) )) + ((z) * ([cos v] of (angle) )))\nend\nif <(axis) = [y]> then\n    set [x v] to (((z) * ([sin v] of (angle) )) + ((x) * ([cos v] of (angle) )))\n    set [y v] to (y)\n    set [z v] to (((z) * ([cos v] of (angle) )) - ((x) * ([sin v] of (angle) )))\nend\nif <(axis) = [z]> then\n    set [x v] to (((x) * ([cos v] of (angle) )) - ((y) * ([sin v] of (angle) )))\n    set [y v] to (((x) * ([sin v] of (angle) )) + ((y) * ([cos v] of (angle) )))\n    set [z v] to (z)\nend\n\ndefine P = Scale (x) (y) (z) by (sx) (sy) (sz)\nset [x v] to ((x) * (sx))\nset [y v] to ((y) * (sy))\nset [z v] to ((z) * (sz))\n\ndefine P = Translate (x) (y) (z) by (tx) (ty) (tz)\nset [x v] to ((x) + (tx))\nset [y v] to ((y) + (ty))\nset [z v] to ((z) + (tz))\n\ndefine P = Perspective Protection of (x) (y) (z) with focal length (focal length)\nif <((focal length) / (z)) > [0]> then\n    set [x v] to ((x) * ((focal length) / (z)))\n    set [y v] to ((y) * ((focal length) / (z)))\n    set [z v] to [0]\nelse\n    set [z v] to [!]\nend\n\ndefine P = (x) (y) (z)\nset [x v] to (x)\nset [y v] to (y)\nset [z v] to (z)\n\ndefine Init\nset [joystick active? v] to [0]\nset [joystick jump impulse v] to [0]\nset [@coins v] to [0]\nset [@level.id v] to [0]\nset [______coin_frame v] to [0]\ndelete all of [@collected_coins v]\nset [playersize x v] to [8]\nset [playersize y v] to [8]\nset [playersize z v] to [8]\nset [@killed v] to [0]\nset [@paused v] to [1]\nset [scroll x v] to [0]\nset [______won? v] to [0]\nset [@pause_rendering v] to [0]\nset [______checkpoint-x v] to [0]\nset [______checkpoint-y v] to [0]\nset [______checkpoint-z v] to [0]\nset [scroll y v] to [0]\nset [scroll z v] to [0]\nset [zoom v] to [410]\nRespawn\nset [@device v] to [2]\nset [@mobile controls enabled v] to [0]\n\ndefine Add objects\nif <(@LEVEL.id) = [1]> then\n    Add Platform [-1] [0] [0] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [3] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1] [0] [3] xrot [-27] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [6] segments [2] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1] [1] [5] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [1] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add coin [-25] [-10] [105]\n    Add coin [-25] [10] [150]\n    Add coin [-25] [30] [195]\n    Add Spike at [0.6] [1] [9.5] xrot [] yrot [] zrot [] size [14] offset [] [] []\n    Add coin [5] [25] [390]\n    Add coin [-55] [25] [465]\n    Add coin [5] [25] [540]\n    Add Platform [-1] [1] [7] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [3] special-color [#86d189] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1] [1] [10] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [-10] segments [2] [3] special-color [#86d189] impulse (xyz) [sw] [] [] moving-platform? []\n    Add Platform [-1] [1] [12.4] xrot [-32] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [5] segments [2] [1.7] special-color [#a39b7e] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1] [2] [14] xrot [] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [3] [2] special-color [#8a836a] impulse (xyz) [] [] [] moving-platform? []\n    Add fence [-65] [75] [770] segments [5] direction [x]\n    Add coin [-55] [90] [725]\n    Add coin [-5] [90] [725]\n    Add coin [45] [90] [725]\n    Add Platform [2] [2] [14] xrot [] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [#8a836a] impulse (xyz) [] [] [] moving-platform? []\n    Add Spike at [2.5] [2] [14.5] xrot [] yrot [] zrot [] size [13] offset [] [] []\n    Add end flag at [150] [75] [725]\nend\nif <(@LEVEL.id) = [2]> then\n    Add Platform [-2] [0] [0] xrot [0] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [4] [3] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2] [0] [3] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [4] [2] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1.5] [0] [5] xrot [] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [3] ((([sin v] of ((tick) * (2.5)) ) * (2)) + (3)) special-color [#d98d09] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2] [0] [10] xrot [] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [4] [3] special-color [#827663] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-1.5] [0] [13] xrot [-30] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [3] ((([sin v] of ((tick) * (2.5)) ) * (2)) + (3)) special-color [#d98d09] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2] [2.5] [17.35] xrot [0] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [4] [5] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add end flag at [-18.5] [105] [950]\n    Add cactus [-100] [105] [900]\n    Add cactus [50] [105] [996]\n    Add fence [-100] [105] [1050] segments [6] direction [x]\n    Add coin [-25] [115] [870]\n    Add coin [-25] [-15] [80]\n    Add coin [-25] [-15] [155]\n    Add cactus [50] [-25] [560]\n    Add coin [50] [30] [560]\n    Add Spike at [-2] [0] [3] xrot [] yrot [] zrot [] size [14] offset [20] [0] [35]\n    Add Spike at [2] [0] [3] xrot [] yrot [] zrot [] size [14] offset [-20] [0] [35]\n    Add checkpoint flag [-70] [-18] [550]\nend\nif <(@LEVEL.id) = [3]> then\n    Add Platform [-1] [0] [0.5] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [#877b67] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform ((-1.5) + (([sin v] of ((tick) * (3)) ) * (1))) [0] ((4) + (([sin v] of ((tick) * (3)) ) * (-1.35))) xrot [0] zrot [0] yrot [0] ground [1] y_offset [10] add_x_len [] add_z_len [] segments [1.5] [1.5] special-color [#A1937C] impulse (xyz) (((([sin v] of (((tick) - (-1)) * (3)) ) * (1)) - (([sin v] of (((tick) - ()) * (3)) ) * (1))) * (50)) [] (((([sin v] of (((tick) - (-1)) * (3)) ) * (-1.35)) - (([sin v] of (((tick) - ()) * (3)) ) * (-1.35))) * (50)) moving-platform? [1]\n    Add Platform [0] [0] [8] xrot [0] zrot [0] yrot [0] ground [1] y_offset [10] add_x_len [] add_z_len [] segments [1] [1] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2.5] [0] [7] xrot [0] zrot [0] yrot [0] ground [1] y_offset [10] add_x_len [] add_z_len [] segments [2] [2] special-color [#877b67] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2.5] [0] [9] xrot [0] zrot [0] yrot [0] ground [] y_offset [10] add_x_len [] add_z_len [] segments [2] [1] special-color [#876e67] impulse (xyz) [] [] [] moving-platform? []\n    Add Spike at [-2.25] [0] [9.5] xrot [] yrot [] zrot [] size [9] offset [] [12.5] []\n    Add Spike at [-1.75] [0] [9.5] xrot [] yrot [] zrot [] size [9] offset [] [12.5] []\n    Add Spike at [-1.25] [0] [9.5] xrot [] yrot [] zrot [] size [9] offset [] [12.5] []\n    Add Spike at [-0.75] [0] [9.5] xrot [] yrot [] zrot [] size [9] offset [] [12.5] []\n    Add Platform [-2.5] [0] [10] xrot [26.5] zrot [0] yrot [0] ground [] y_offset [10] add_x_len [] add_z_len [5] segments [2] [2] special-color [#876e67] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2.5] [-1] [12] xrot [] zrot [0] yrot [0] ground [1] y_offset [10] add_x_len [] add_z_len [] segments [2] [2] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add cactus [-70] [-60] [640]\n    Add line from [-100] [-75] [725] to [-100] [-25] [875] size [6] color [#6b6b6b] y-sorting-offset [-500]\n    Add Platform [-2.5] ((-0.6) + (([sin v] of ((tick) * (2.5)) ) * (0.5))) ((16.5) + (([sin v] of ((tick) * (2.5)) ) * (1.5))) xrot [-16] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [1] special-color [#adadad] impulse (xyz) [] (((([sin v] of (((tick) - (-1)) * (2.5)) ) * (0.5)) - (([sin v] of (((tick) - ()) * (2.5)) ) * (0.5))) * (50)) (((([sin v] of (((tick) - (-1)) * (2.5)) ) * (1.5)) - (([sin v] of (((tick) - ()) * (2.5)) ) * (1.5))) * (50)) moving-platform? [1]\n    Add Platform [-2.5] [0] [19] xrot [] zrot [0] yrot [0] ground [] y_offset [10] add_x_len [] add_z_len [] segments [2] [3] special-color [#A1937C] impulse (xyz) [] [] [] moving-platform? []\n    Add cactus [-85] [-15] [1000]\n    Add coin [-125] [10] [345]\n    Add coin [-125] [10] [395]\n    Add coin [-125] [-45] [600]\n    Add coin [-71] [10] [634]\n    Add coin [-85] [50] [1000]\n    Add Spring at [-100] [-20] [1050] x_rot [0]\n    Add Platform [-2.5] [2] [23] xrot [-30] zrot [] yrot [] ground [] y_offset [] add_x_len [] add_z_len [7] segments [2] [1] special-color [#b5ab8b] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-2.5] [2] [24] xrot [] zrot [] yrot [] ground [] y_offset [29] add_x_len [] add_z_len [] segments [2] [1] special-color [#a39b7e] impulse (xyz) [] [] [] moving-platform? []\n    Add end flag at [-100] [105] [1200]\n    Add checkpoint flag [-135] [-65] [600]\nend\nif <(@LEVEL.id) = [4]> then\n    Add Platform [-1] [0] [0] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-0.5] [0] [2] xrot ((-10) + ((90) * (temporary-platform-x-rot))) zrot [] yrot [] ground [] y_offset [] add_x_len [] add_z_len [1] segments [1] [2] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [-0.5] [0] [4] xrot [0] zrot [0] yrot [0] ground [] y_offset [17] add_x_len [] add_z_len [] segments [1] [1] special-color [#D2BB75] impulse (xyz) [] [0] [0] moving-platform? []\n    Add Platform [-1] [0] [5] xrot [0] zrot [0] yrot [0] ground [1] y_offset [17] add_x_len [0] add_z_len [0] segments [3] [2] special-color [] impulse (xyz) [] [0] [0] moving-platform? []\n    Add Platform [2] [0] [5] xrot [0] zrot [90] yrot [0] ground [] y_offset [17] add_x_len [-17] add_z_len [] segments [1] [2] special-color [#4d483f] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [2] [1] [5] xrot [0] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [4] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [7] [1] [5] xrot [0] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [8] [0] [7] xrot [0] zrot [-30] yrot [0] ground [] y_offset [50] add_x_len [] add_z_len [] segments [1] [4] special-color [#a39b7e] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [7] ((1) + ((0.5) * (temporary-platform-x-rot))) [7] xrot [] zrot [] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [] segments [1] [3] special-color [#b5ab8b] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [6] [1] [10] xrot [0] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [6] [1] ((13.5) + (([sin v] of ((tick) * (3.9)) ) * (1))) xrot [0] zrot [0] yrot [0] ground [0] y_offset [] add_x_len [] add_z_len [] segments [1] [1] special-color [#adadad] impulse (xyz) [] [] ((([sin v] of (((tick) - (-1)) * (3.9)) ) - ([sin v] of (((tick) - ()) * (3.9)) )) * (50)) moving-platform? [1]\n    Add line from [300] [25] [610] to [300] [25] [740] size [6] color [#6b6b6b] y-sorting-offset [-200]\n    Add Platform [6] [1] [16] xrot [0] zrot [0] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [3] [3] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [6.5] [1] [19] xrot [-33] zrot [] yrot [0] ground [0] y_offset [] add_x_len [] add_z_len [-5.1] segments [1] [2] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [6] [2] [20.5] xrot [] zrot [] yrot [0] ground [1] y_offset [] add_x_len [] add_z_len [] segments [2] [2] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [5] [2] [21] xrot [] zrot [-39] yrot [0] ground [0] y_offset [40] add_x_len [13] add_z_len [] segments [1] [1] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [4] [2] [21] xrot [] zrot [] yrot [0] ground [0] y_offset [40] add_x_len [] add_z_len [] segments [1] [1] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [3.25] [2.5] [21] xrot [] zrot [-39] yrot [0] ground [0] y_offset [45] add_x_len [-2] add_z_len [] segments [1] [1] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [2] [3] [21] xrot [] zrot [0] yrot [0] ground [0] y_offset [20] add_x_len [11.9] add_z_len [] segments [1] [1] special-color [#D2BB75] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [0.3] [3] [21] xrot [] zrot [0] yrot [0] ground [] y_offset [20] add_x_len [-8] add_z_len [] segments [2] [3] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [1] [5] [26] xrot [-30] zrot [0] yrot [0] ground [] y_offset [] add_x_len [] add_z_len [7] segments [1] [1] special-color [#b5ab8b] impulse (xyz) [] [] [] moving-platform? []\n    Add Platform [1] [5] [27] xrot [0] zrot [0] yrot [0] ground [] y_offset [29] add_x_len [] add_z_len [] segments [1] [1] special-color [#a39b7e] impulse (xyz) [] [] [] moving-platform? []\n    Add end flag at [50] [250] [1350]\n    Add Platform [1.15] [3] [24] xrot [-5] zrot [] yrot [0] ground [] y_offset [20] add_x_len [-8] add_z_len [] segments [1] [1] special-color [] impulse (xyz) [] [] [] moving-platform? []\n    Add coin [-50] [10] [275]\n    Add coin [-10] [10] [300]\n    Add coin [30] [10] [275]\n    Add coin [-10] [10] [250]\n    Add coin [300] [75] [675]\n    Add coin [400] [40] [300]\n    Add coin [400] [40] [250]\n    Add coin [350] [40] [300]\n    Add coin [350] [40] [250]\n    Add coin [350] [92] [1050]\n    Add Spike at [6.5] [1] [17.5] xrot [] yrot [] zrot [] size ((9) + (([cos v] of ((tick) * (10)) ) * (4))) offset [] [] []\n    Add Spike at [7.5] [1] [17.5] xrot [] yrot [] zrot [] size ((9) + (([sin v] of ((tick) * (10)) ) * (4))) offset [] [] []\n    Add Spike at [8.5] [1] [17.5] xrot [] yrot [] zrot [] size ((9) + (([cos v] of ((tick) * (10)) ) * (4))) offset [] [] []\n    Add coin [350] [110] [450]\n    Add coin [350] [110] [400]\n    Add coin [350] [110] [350]\n    \n    Add Spring at [55] [150] [1200] x_rot []\n    Add checkpoint flag [325] [25] [525]\nend\n\ndefine Reset\ndelete all of [hitboxx v]\ndelete all of [hitboxxl v]\ndelete all of [hitboxy v]\ndelete all of [hitboxz v]\ndelete all of [hitbox_type v]\ndelete all of [hitbox_x_rotation v]\ndelete all of [hitbox_z_rotation v]\ndelete all of [hitboxyl v]\ndelete all of [hitbox_y_rotation v]\ndelete all of [hitboxzl v]\ndelete all of [__object_distance v]\ndelete all of [objectx1 v]\ndelete all of [objectx2 v]\ndelete all of [objectx3 v]\ndelete all of [objecty1 v]\ndelete all of [objecty2 v]\ndelete all of [objecty3 v]\ndelete all of [objectz1 v]\ndelete all of [__object.box_distance v]\ndelete all of [objectz2 v]\ndelete all of [object type v]\ndelete all of [object_hitbox_reference v]\ndelete all of [objectz3 v]\ndelete all of [color v]\ndelete all of [hitboximpulsex v]\ndelete all of [hitboximpulsey v]\ndelete all of [hitboximpulsez v]\nif <(player y) < [-200]> then\n    Respawn\n    set [@paused v] to [1]\n    broadcast (@dead v)\nend\nset [impulse x v] to [0]\nset [impulse y v] to [0]\nset [impulse z v] to [0]\n\ndefine (+) Add hitbox (x) (y) (z) type (type) x rotation (xrot) z rotation (zrot) y rotation (yrot) color (color) l (xl) (yl) (zl) with_graphical_element? (wge) always_background? (always_background?) impulses (xyz) (impulse-x) (impulse-y) (impulse-z) IndependentTexture (independenttexture)\nadd (x) to [hitboxx v]\nadd (xl) to [hitboxxl v]\nadd (y) to [hitboxy v]\nadd (yl) to [hitboxyl v]\nadd (type) to [hitbox_type v]\nadd (z) to [hitboxz v]\nadd (zl) to [hitboxzl v]\nadd (xrot) to [hitbox_x_rotation v]\nadd (yrot) to [hitbox_y_rotation v]\nadd (zrot) to [hitbox_z_rotation v]\nadd ((impulse-x) + ((zrot) / (-70))) to [hitboximpulsex v]\nadd (impulse-y) to [hitboximpulsey v]\nadd ((impulse-z) + ((xrot) / (70))) to [hitboximpulsez v]\nif <(wge) = [1]> then\n    (+) get insert pos coordinates (x) (y) (z) only_use_box_coordinates? [0] hitbox? [1] always-background? (always_background?)\n    insert (box_distance) at (i) of [__object.box_distance v] \n    insert (distance) at (i) of [__object_distance v] \n    insert [] at (i) of [objectx1 v] \n    insert [] at (i) of [objectx2 v] \n    insert [] at (i) of [objectx3 v] \n    insert [] at (i) of [objecty1 v] \n    insert [] at (i) of [objecty2 v] \n    insert [] at (i) of [objecty3 v] \n    insert [] at (i) of [objectz1 v] \n    insert [] at (i) of [objectz2 v] \n    insert [] at (i) of [objectz3 v] \n    insert (length of [hitbox_type v]) at (i) of [object_hitbox_reference v] \n    insert (color) at (i) of [color v] \n    if <(independenttexture) = [1]> then\n        insert (join [hitbox] [IndependentTexture]) at (i) of [object type v] \n    else\n        insert (join [hitbox] []) at (i) of [object type v] \n    end\nend\n\ndefine Physics\nif <(@paused) = [0]> then\n    change [player y direction v] by (((player y direction) - (_player y direction)) / (-4))\n    change [sy v] by (-0.5)\n    if <<key (space v) pressed?> or <(joystick jump impulse) = [1]>> then\n        change [player y v] by (-3)\n        (m) collision - shadow? []\n        change [player y v] by (3)\n        if <[h_collision v] contains [ground1]?> then\n            set [sy v] to [7.5]\n            start sound [High Whoosh v]\n        end\n    end\n    if <[h_collision v] contains [spring]?> then\n        set [sy v] to [10.5]\n        change [player y v] by (10)\n        (m) collision - shadow? []\n        change [player y v] by (-10)\n        if <not <[h_collision v] contains [spike]?>> then\n            start sound [smw_spring_jump @ToadfanSchool v]\n        end\n        broadcast (@jump v)\n    end\n    change [player y v] by (sy)\n    (m) y (sy)\n    if <[h_collision v] contains [coin]?> then\n        set [____coin_removed v] to (join ((item (item # of [coin] in [h_collision v]) of [hitboxx v]) + (10)) (join (join [,] ((item (item # of [coin] in [h_collision v]) of [hitboxy v]) + (10))) (join [,] ((item (item # of [coin] in [h_collision v]) of [hitboxz v]) + (10)))))\n        add (____coin_removed) to [@collected_coins v]\n        start sound [coin v]\n        broadcast (@coin v)\n    end\n    if <[h_collision v] contains [endflag]?> then\n        broadcast (@win v)\n    end\n    set [sx v] to ((sx) * (0.4))\n    set [sz v] to ((sz) * (0.4))\n    if <not <((impulse x) + (impulse z)) = [0]>> then\n        set [sx v] to (impulse x)\n        set [sz v] to (impulse z)\n    end\n    if <(joystick active?) = [1]> then\n        change [y_angle v] by ((joystick dir) * (-1))\n        change [y_angle v] by (-90)\n    end\n    if <([abs v] of (sx) ) < [6]> then\n        if <(joystick active?) = [1]> then\n            change [sz v] by (([sin v] of (y_angle) ) * (-2.4))\n            change [sx v] by (([cos v] of (y_angle) ) * (-2.4))\n        end\n        if <key (a v) pressed?> then\n            set [_player y direction v] to ((y_angle) * (-1))\n            change [sz v] by (([sin v] of (y_angle) ) * (-2.4))\n            change [sx v] by (([cos v] of (y_angle) ) * (-2.4))\n            change [y_angle v] by (1)\n        end\n        if <key (d v) pressed?> then\n            set [_player y direction v] to ((y_angle) * (1))\n            change [sz v] by (([sin v] of (y_angle) ) * (2.4))\n            change [sx v] by (([cos v] of (y_angle) ) * (2.4))\n            change [y_angle v] by (-1)\n        end\n    end\n    if <([abs v] of (sz) ) < [6]> then\n        if <key (w v) pressed?> then\n            set [_player y direction v] to ((y_angle) * (-1))\n            change [sz v] by (([cos v] of ((y_angle) * (-1)) ) * (2.4))\n            change [sx v] by (([sin v] of ((y_angle) * (-1)) ) * (2.4))\n        end\n        if <key (s v) pressed?> then\n            set [_player y direction v] to ((y_angle) * (-1))\n            change [sz v] by (([cos v] of ((y_angle) * (-1)) ) * (-2.4))\n            change [sx v] by (([sin v] of ((y_angle) * (-1)) ) * (-2.4))\n        end\n    end\n    if <(joystick active?) = [1]> then\n        change [y_angle v] by (joystick dir)\n        change [y_angle v] by (90)\n    end\n    if <[h_collision v] contains [checkpoint]?> then\n        if <(_____checkpoint?) = [0]> then\n            set [_____checkpoint? v] to [1]\n            start sound [Collect v]\n        end\n    end\n    change player x / z\nend\nCamera (x_angle)\n\ndefine (m) collision - shadow? (shadow?)\ndelete all of [h_shadow_collision_y v]\nset [player x direction v] to [0]\nset [player z direction v] to [0]\ndelete all of [h_collision v]\nset [u v] to [0]\nrepeat (length of [hitboxx v])\n    change [u v] by (1)\n    add [0] to [h_collision v]\n    add [0] to [h_shadow_collision_y v]\n    (m) collosion of element id (u) shadow? (shadow?)\nend\n\ndefine (m) collosion of element id (element) shadow? (shadow?)\nset [o v] to (element)\nset [_platform x v] to (item (o) of [hitboxx v])\nset [_platform xlen v] to (item (o) of [hitboxxl v])\nset [_platform y v] to (item (o) of [hitboxy v])\nset [_platform ylen v] to (item (o) of [hitboxyl v])\nset [_platform z v] to (item (o) of [hitboxz v])\nset [_platform zlen v] to (item (o) of [hitboxzl v])\nset [_player x v] to (player x)\nset [_player y v] to (player y)\nset [_player z v] to (player z)\nif <<(item (o) of [hitbox_x_rotation v]) = []> and <<(item (o) of [hitbox_z_rotation v]) = []> and <(item (o) of [hitbox_y_rotation v]) = []>>> then\nif <(shadow?) = [1]> then\n    replace item (length of [h_collision v]) of [h_shadow_collision_y v] with (_player y)\nend\nif <<((_player x) + ((playerSize x) / (1.2))) > (_platform x)> and <((_platform x) + (_platform xlen)) > ((_player x) - ((playerSize x) / (1.2)))>> then\n    if <<(shadow?) = [1]> or <<((_player y) + ((playerSize y) / (1.2))) > (_platform y)> and <((_platform y) + (_platform ylen)) > ((_player y) - ((playerSize y) / (1.2)))>>> then\n        if <<((_player z) + ((playerSize z) / (1.2))) > (_platform z)> and <((_platform z) + (_platform zlen)) > ((_player z) - ((playerSize z) / (1.2)))>> then\n            replace item (length of [h_collision v]) of [h_collision v] with (item (o) of [hitbox_type v])\n            if <not <<([abs v] of (item (o) of [hitbox_x_rotation v]) ) = [90]> or <([abs v] of (item (o) of [hitbox_z_rotation v]) ) = [90]>>> then\n                set [player x direction v] to (item (o) of [hitbox_x_rotation v])\n                set [player z direction v] to (item (o) of [hitbox_z_rotation v])\n            end\n            if <not <(shadow?) = [1]>> then\n                set [impulse x v] to (item (o) of [hitboximpulsex v])\n                set [impulse y v] to (item (o) of [hitboximpulsey v])\n                set [impulse z v] to (item (o) of [hitboximpulsez v])\n            end\n        end\n    end\nend\n\ndefine (m) x (sx) accuracy (acc)\n(m) collision - shadow? []\nif <[h_collision v] contains [ground1]?> then\n    repeat (10)\n        change [player y v] by (0.5)\n        (m) collision - shadow? []\n        if <not <[h_collision v] contains [ground1]?>> then\n            stop [this script v]\n        end\n    end\n    change [player y v] by (-5)\n    repeat until <not <[h_collision v] contains [ground1]?>>\n        if <(sx) < [0]> then\n            change [player x v] by (acc)\n        else\n            change [player x v] by ((acc) * (-1))\n        end\n        (m) collision - shadow? []\n        set [sx v] to [0]\n    end\nend\n\ndefine (m) y (sy)\n(m) collision - shadow? []\nrepeat until <not <[h_collision v] contains [ground1]?>>\n    if <(sy) < [0]> then\n        change [player y v] by (0.5)\n    else\n        change [player y v] by (-0.5)\n    end\n    (m) collision - shadow? []\n    set [sy v] to [0]\nend\n\ndefine (m) z (sz) accuracy (acc)\n(m) collision - shadow? []\nif <[h_collision v] contains [ground1]?> then\n    repeat (10)\n        change [player y v] by (0.5)\n        (m) collision - shadow? []\n        if <not <[h_collision v] contains [ground1]?>> then\n            stop [this script v]\n        end\n    end\n    change [player y v] by (-5)\n    repeat until <not <[h_collision v] contains [ground1]?>>\n        if <(sz) < [0]> then\n            change [player z v] by (acc)\n        else\n            change [player z v] by ((acc) * (-1))\n        end\n        (m) collision - shadow? []\n        set [sz v] to [0]\n    end\nend\n\nset pen size to (5)\nset pen color to (#ffffff)\nset pen (transparency v) to (50)\ngo to x: (0) y: (0)\npen down\ngo to x: (0) y: (-8)\npen up\ngo to x: (0) y: (0)\npen down\ngo to x: (0) y: (8)\npen up\ngo to x: (0) y: (0)\npen down\ngo to x: (-8) y: (0)\npen up\ngo to x: (0) y: (0)\npen down\ngo to x: (8) y: (0)\npen up\n\ndefine change player x / z\nchange [player x v] by (sx)\nset [player x v] to ((round ((player x) * (10))) / (10))\n(m) x (sx) accuracy [0.5]\nchange [player z v] by (sz)\nset [player z v] to ((round ((player z) * (10))) / (10))\n(m) z (sz) accuracy [0.5]\n\ndefine Add Platform (x) (y) (z) xrot (xrot) zrot (zrot) yrot (yrot) ground (ground) y_offset (y_offset) add_x_len (add_x_len) add_z_len (add_z_len) segments (x-segments) (z-segments) special-color (special-color) impulse (xyz) (impulse-x) (impulse-y) (impulse-z) moving-platform? (moving-platform?)\nset [_____x v] to (((x) * (50)) - (25))\nset [_____y v] to ((((y) * (50)) - (25)) + (y_offset))\nset [_____z v] to (((z) * (50)) - (25))\nset [_always-background? v] to (<not <<(yrot) = []> or <(yrot) = [0]>>> * (1))\nif <(x-segments) = []> then\n    set [_platform xlen v] to [1]\nelse\n    set [_platform xlen v] to (x-segments)\nend\nif <(z-segments) = []> then\n    set [_platform zlen v] to [1]\nelse\n    set [_platform zlen v] to (z-segments)\nend\nif <<([abs v] of ((_____x) - (player x)) ) < (@render distance)> and <<([abs v] of ((_____y) - (player y)) ) < (@render distance)> and <([abs v] of ((_____z) - (player z)) ) < (@render distance)>>> then\n    delete all of [_box v]\n    set [i v] to [0]\n    repeat (_platform xlen)\n        change [i v] by (1)\n        set [i2 v] to [0]\n        repeat (_platform zlen)\n            change [i2 v] by (1)\n            add ((x) + ((i) - (1))) to [_box v]\n            add ((y) - (1)) to [_box v]\n            add ((z) + ((i2) - (1))) to [_box v]\n        end\n    end\n    add (x) to [_box v]\n    add ((y) - (1)) to [_box v]\n    add (z) to [_box v]\n    if <<(ground) = [1]> and <not <(@device) = [1]>>> then\n        if <(special-color) = []> then\n            (+) Add hitbox (_____x) (_____y) (_____z) type [ground1] x rotation (xrot) z rotation (zrot) y rotation (yrot) color [#7ac298] l (((50) + (add_x_len)) * (_platform xlen)) [0] (((50) + (add_z_len)) * (_platform zlen)) with_graphical_element? [1] always_background? (_always-background?) impulses (xyz) (impulse-x) (impulse-y) (impulse-z) IndependentTexture (moving-platform?)\n        else\n            (+) Add hitbox (_____x) (_____y) (_____z) type [ground1] x rotation (xrot) z rotation (zrot) y rotation (yrot) color (special-color) l (((50) + (add_x_len)) * (_platform xlen)) [0] (((50) + (add_z_len)) * (_platform zlen)) with_graphical_element? [1] always_background? (_always-background?) impulses (xyz) (impulse-x) (impulse-y) (impulse-z) IndependentTexture (moving-platform?)\n        end\n        (+) Add graphical object x ((_____x) + ((0) * (_platform xlen))) ((_____x) + (((50) * (_platform xlen)) / (2))) ((_____x) + ((50) * (_platform xlen))) y (_____y) ((_____y) - ((30) * (_platform xlen))) (_____y) z ((_____z) + (((50) * (_platform zlen)) / (1))) ((_____z) + (((50) * (_platform zlen)) / (2))) ((_____z) + (((50) * (_platform zlen)) / (1))) color [#696255] fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz (_____x) ((_____y) - (350)) (_____z)\n        (+) Add graphical object x ((_____x) + (() * (_platform xlen))) ((_____x) + (((50) * (_platform xlen)) / (2))) ((_____x) + ((0) * (_platform xlen))) y (_____y) ((_____y) - ((30) * (_platform xlen))) (_____y) z (_____z) ((_____z) + (((50) * (_platform zlen)) / (2))) ((_____z) + (((50) * (_platform zlen)) / (1))) color [#4d483f] fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz (_____x) ((_____y) - (350)) (_____z)\n        (+) Add graphical object x ((_____x) + ((50) * (_platform xlen))) ((_____x) + (((50) * (_platform xlen)) / (2))) ((_____x) + ((50) * (_platform xlen))) y (_____y) ((_____y) - ((30) * (_platform xlen))) (_____y) z ((_____z) + (((50) * (_platform zlen)) / (1))) ((_____z) + (((50) * (_platform zlen)) / (2))) ((_____z) + (((0) * (_platform zlen)) / (1))) color [#575248] fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz (_____x) ((_____y) - (350)) (_____z)\n        (+) Add graphical object x ((_____x) + ((50) * (_platform xlen))) ((_____x) + ((((50) * (_platform xlen)) + ()) / (2))) ((_____x) + ((00) * (_platform xlen))) y (_____y) ((_____y) - ((30) * (_platform xlen))) (_____y) z (_____z) ((_____z) + (((50) * (_platform zlen)) / (2))) (_____z) color [#696255] fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz (_____x) ((_____y) - (350)) (_____z)\n    else\n        if <(special-color) = []> then\n            (+) Add hitbox (_____x) (_____y) (_____z) type [ground1] x rotation (xrot) z rotation (zrot) y rotation (yrot) color [#7ac298] l (((50) + (add_x_len)) * (_platform xlen)) [0] (((50) + (add_z_len)) * (_platform zlen)) with_graphical_element? [1] always_background? (_always-background?) impulses (xyz) (impulse-x) (impulse-y) (impulse-z) IndependentTexture (moving-platform?)\n        else\n            (+) Add hitbox (_____x) (_____y) (_____z) type [ground1] x rotation (xrot) z rotation (zrot) y rotation (yrot) color (special-color) l (((50) + (add_x_len)) * (_platform xlen)) [0] (((50) + (add_z_len)) * (_platform zlen)) with_graphical_element? [1] always_background? (_always-background?) impulses (xyz) (impulse-x) (impulse-y) (impulse-z) IndependentTexture (moving-platform?)\n        end\n    end\nend\nset [ay rotation v] to [0]\n\ndefine Add player object\nchange [player y v] by (-3)\n(m) collision - shadow? []\nif <[h_collision v] contains [spike]?> then\n    if <(@paused) = [0]> then\n        set [@paused v] to [1]\n        start sound [Crunch v]\n        broadcast (@killed v)\n    end\nend\nchange [player y v] by (3)\nchange [_player x direction v] by (((_player x direction) - (player x direction)) / (-5))\nchange [_player z direction v] by (((_player z direction) - (player z direction)) / (-5))\nset [ax rotation v] to (_player x direction)\nset [az rotation v] to (_player z direction)\nset [ay rotation v] to []\n(+) Add cube object (player x) ((player y) + ((playerSize y) * (-1))) (player z) lengths (playerSize x) (playerSize y) (playerSize z) colors [#2679ff] [#2679ff] [#458cff] [#458cff] [#6ea6ff] []\nAdd Player shadow\n(m) collision - shadow? [0]\n\ndefine (+) Add graphical object x (x1) (x2) (x3) y (y1) (y2) (y3) z (z1) (z2) (z3) color (color) fix_insert_position (fip) fix_xyz_refs (xref) (yref) (zref) fix_box_xyz (box-x) (box-y) (box-z)\nif <(fip) = []> then\n    if <(box-x) = []> then\n        set [__x v] to (((x1) + ((x2) + (x3))) / (3))\n        set [__y v] to (((y1) + ((y2) + (y3))) / (3))\n        set [__z v] to (((z1) + ((z2) + (z3))) / (3))\n        (+) get box (__x) (__y) (__z)\n        if <(xref) = []> then\n            (+) get insert pos coordinates (__x) (__y) (__z) only_use_box_coordinates? [] hitbox? [] always-background? []\n        else\n            (+) get insert pos coordinates (xref) (yref) (zref) only_use_box_coordinates? [] hitbox? [] always-background? []\n        end\n    else\n        (+) get box (box-x) (box-y) (box-z)\n        if <(xref) = []> then\n            set [__x v] to (((x1) + ((x2) + (x3))) / (3))\n            set [__y v] to (((y1) + ((y2) + (y3))) / (3))\n            set [__z v] to (((z1) + ((z2) + (z3))) / (3))\n            (+) get insert pos coordinates (__x) (__y) (__z) only_use_box_coordinates? [] hitbox? [] always-background? []\n        else\n            (+) get insert pos coordinates (xref) (yref) (zref) only_use_box_coordinates? [] hitbox? [] always-background? []\n        end\n    end\nelse\n    set [i v] to (fip)\nend\ninsert (distance) at (i) of [__object_distance v] \ninsert (box_distance) at (i) of [__object.box_distance v] \ninsert (x1) at (i) of [objectx1 v] \ninsert (x2) at (i) of [objectx2 v] \ninsert (x3) at (i) of [objectx3 v] \ninsert (y1) at (i) of [objecty1 v] \ninsert (y2) at (i) of [objecty2 v] \ninsert (y3) at (i) of [objecty3 v] \ninsert (z1) at (i) of [objectz1 v] \ninsert (z2) at (i) of [objectz2 v] \ninsert (z3) at (i) of [objectz3 v] \ninsert [] at (i) of [object_hitbox_reference v] \ninsert (color) at (i) of [color v] \ninsert [tri] at (i) of [object type v] \n\ndefine (+) Add cube object (middle-x) (middle-y) (middle-z) lengths (xlen) (ylen) (zlen) colors (color1) (color2) (color3) (color4) (color5) (color6)\ndelete all of [platform:corners v]\n(3D) Go to ((xlen) * (1)) ((ylen) * (2)) ((zlen) * (1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (1)) ((ylen) * (2)) ((zlen) * (-1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (1)) ((ylen) * ()) ((zlen) * (1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (1)) ((ylen) * ()) ((zlen) * (-1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (-1)) ((ylen) * (2)) ((zlen) * (1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (-1)) ((ylen) * (2)) ((zlen) * (-1)) render [0] perspective_proj [0] rotation_mode [0] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (-1)) ((ylen) * ()) ((zlen) * (1)) render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\n(3D) Go to ((xlen) * (-1)) ((ylen) * ()) ((zlen) * (-1)) render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [platform:corners v]\nadd (y) to [platform:corners v]\nadd (z) to [platform:corners v]\ndelete all of [cube:sides v]\n(3D) Go to [] [] (zlen) render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [cube:sides v]\nadd (y) to [cube:sides v]\nadd (z) to [cube:sides v]\n(3D) Go to [] [] ((zlen) * (-1)) render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [cube:sides v]\nadd (y) to [cube:sides v]\nadd (z) to [cube:sides v]\n(3D) Go to (xlen) [] [] render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [cube:sides v]\nadd (y) to [cube:sides v]\nadd (z) to [cube:sides v]\n(3D) Go to ((xlen) * (-1)) [] [] render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [cube:sides v]\nadd (y) to [cube:sides v]\nadd (z) to [cube:sides v]\n(3D) Go to [] ((ylen) * (1)) [] render [0] perspective_proj [0] rotation_mode [1] object_mode [1] sort [1]\nadd (x) to [cube:sides v]\nadd (y) to [cube:sides v]\nadd (z) to [cube:sides v]\nset [_orient1 v] to [8]\nset [_orient2 v] to [6]\nset [_orient3 v] to [2]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color1) fix_insert_position [] fix_xyz_refs ((middle-x) + (item (((2) * (3)) + (-2)) of [cube:sides v])) ((middle-y) + (item (((2) * (3)) + (-1)) of [cube:sides v])) ((middle-z) + (item (((2) * (3)) + ()) of [cube:sides v])) fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [8]\nset [_orient2 v] to [4]\nset [_orient3 v] to [2]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color1) fix_insert_position (i) fix_xyz_refs [] [] [] fix_box_xyz [] [] []\nset [_orient1 v] to [5]\nset [_orient2 v] to [1]\nset [_orient3 v] to [3]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color2) fix_insert_position [] fix_xyz_refs ((middle-x) + (item (((1) * (3)) + (-2)) of [cube:sides v])) ((middle-y) + (item (((1) * (3)) + (-1)) of [cube:sides v])) ((middle-z) + (item (((1) * (3)) + ()) of [cube:sides v])) fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [5]\nset [_orient2 v] to [7]\nset [_orient3 v] to [3]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color2) fix_insert_position (i) fix_xyz_refs [] [] [] fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [1]\nset [_orient2 v] to [2]\nset [_orient3 v] to [4]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color3) fix_insert_position [] fix_xyz_refs ((middle-x) + (item (((3) * (3)) + (-2)) of [cube:sides v])) ((middle-y) + (item (((3) * (3)) + (-1)) of [cube:sides v])) ((middle-z) + (item (((3) * (3)) + ()) of [cube:sides v])) fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [4]\nset [_orient2 v] to [3]\nset [_orient3 v] to [1]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color3) fix_insert_position (i) fix_xyz_refs [] [] [] fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [6]\nset [_orient2 v] to [8]\nset [_orient3 v] to [7]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color4) fix_insert_position [] fix_xyz_refs ((middle-x) + (item (((4) * (3)) + (-2)) of [cube:sides v])) ((middle-y) + (item (((4) * (3)) + (-1)) of [cube:sides v])) ((middle-z) + (item (((4) * (3)) + ()) of [cube:sides v])) fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [6]\nset [_orient2 v] to [5]\nset [_orient3 v] to [7]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color4) fix_insert_position (i) fix_xyz_refs [] [] [] fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [6]\nset [_orient2 v] to [5]\nset [_orient3 v] to [1]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color5) fix_insert_position [] fix_xyz_refs ((middle-x) + (item (((5) * (3)) + (-2)) of [cube:sides v])) ((middle-y) + (item (((5) * (3)) + (-1)) of [cube:sides v])) ((middle-z) + (item (((5) * (3)) + ()) of [cube:sides v])) fix_box_xyz (player x) (player y) (player z)\nset [_orient1 v] to [6]\nset [_orient2 v] to [2]\nset [_orient3 v] to [1]\n(+) Add graphical object x ((middle-x) + (item (((_orient1) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient2) * (3)) + (-2)) of [platform:corners v])) ((middle-x) + (item (((_orient3) * (3)) + (-2)) of [platform:corners v])) y ((middle-y) + (item (((_orient1) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient2) * (3)) + (-1)) of [platform:corners v])) ((middle-y) + (item (((_orient3) * (3)) + (-1)) of [platform:corners v])) z ((middle-z) + (item (((_orient1) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient2) * (3)) + ()) of [platform:corners v])) ((middle-z) + (item (((_orient3) * (3)) + ()) of [platform:corners v])) color (color5) fix_insert_position (i) fix_xyz_refs [] [] [] fix_box_xyz (player x) (player y) (player z)\n\ndefine Add Spike at (x-block) (y-block) (z-block) xrot (xrot) yrot (yrot) zrot (zrot) size (size) offset (xoff) (yoff) (zoff)\nset [_x v] to ((((x-block) * (50)) - (25)) + (xoff))\nset [_y v] to ((((y-block) * (50)) - (25)) + (yoff))\nset [_z v] to ((((z-block) * (50)) - (25)) + (zoff))\nif <<([abs v] of ((_x) - (player x)) ) < (@render distance)> and <<([abs v] of ((_y) - (player y)) ) < (@render distance)> and <([abs v] of ((_z) - (player z)) ) < (@render distance)>>> then\n    set [ax rotation v] to (xrot)\n    set [ay rotation v] to (yrot)\n    set [az rotation v] to (zrot)\n    (+) Add hitbox ((_x) - ((size) * (0.5))) ((_y) + ((size) * (2))) ((_z) - ((size) * (0.5))) type [spike] x rotation (xrot) z rotation (zrot) y rotation (yrot) color [#ffd1d1] l ((size) * (1)) ((size) * (1)) ((size) * (1)) with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n    (+) Add hitbox ((_x) - ((size) * (1))) (_y) ((_z) - ((size) * (1))) type [spike] x rotation (xrot) z rotation (zrot) y rotation (yrot) color [#ffd1d1] l ((size) * (2)) ((size) * (2)) ((size) * (2)) with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n    (+) add body form corners [1] (size) [0] ((size) * (-1)) [2] (size) [0] (size) [3] [0] ((size) * (3.2)) [0] [color] [#f25a5a] [mid] (_x) (_y) (_z) [use mid x as ref] []\n    (+) add body form corners [1] ((size) * (-1)) [0] ((size) * (-1)) [2] (size) [0] ((size) * (-1)) [3] [0] ((size) * (3.2)) [0] [color] [#ff7878] [mid] (_x) (_y) (_z) [use mid x as ref] []\n    (+) add body form corners [1] ((size) * (-1)) [0] ((size) * (-1)) [2] ((size) * (-1)) [0] (size) [3] [0] ((size) * (3.2)) [0] [color] [#f25a5a] [mid] (_x) (_y) (_z) [use mid x as ref] []\n    (+) add body form corners [1] ((size) * (-1)) [0] (size) [2] (size) [0] (size) [3] [0] ((size) * (3.2)) [0] [color] [#ff7878] [mid] (_x) (_y) (_z) [use mid x as ref] []\nend\n\ndefine Respawn\nreset timer\nset [sy v] to [0]\nset [sx v] to [0]\nset [_flag:y v] to [0]\nset [sz v] to [0]\nset [player z direction v] to [0]\nset [player y direction v] to [0]\nset [_player y direction v] to [0]\nset [scroll player y v] to [0]\nset [player x v] to [-25]\nset [player y v] to [20]\nset [player z v] to [25]\nset [y_angle v] to [0]\nset [x_angle v] to [-35]\nif <is compiled?> then\n    if <(@device) = [1]> then\n        set [@mobile controls enabled v] to [1]\n    end\n    set [@device v] to [3]\nend\nif <(@device) = [3]> then\n    set [@render quality v] to [2]\n    set [@render distance v] to [440]\nelse\n    set [@render distance v] to [280]\n    if <(@device) = [2]> then\n        set [@render quality v] to [2]\n    else\n        set [@render quality v] to [3]\n        set [@mobile controls enabled v] to [1]\n    end\nend\nif <(_____checkpoint?) = [1]> then\n    set [player x v] to ((______checkpoint-x) + (20))\n    set [player y v] to (______checkpoint-y)\n    set [player z v] to (______checkpoint-z)\nend\n\nwhen I receive [@killed v]\nrepeat (2)\n    wait (0.1) seconds\n    set [@killed v] to [1]\n    wait (0.1) seconds\n    set [@killed v] to [0]\nend\nRespawn\nbroadcast (@dead v)\n\ndefine (+) get insert pos coordinates (x) (y) (z) only_use_box_coordinates? (only_use_box_coordinates?) hitbox? (hitbox) always-background? (always-background?)\nset [i v] to [1]\nset [o v] to [0]\nif <(hitbox) = [1]> then\n    set [box_distance v] to [0]\nelse\n    set [box_distance v] to [1e1000]\nend\nrepeat ((length of [_box v]) / (3))\n    Get 3D distance from (((item ((o) + (1)) of [_box v]) * (50)) - (50)) (((item ((o) + (2)) of [_box v]) * (50)) - (50)) (((item ((o) + (3)) of [_box v]) * (50)) - (50)) to (scroll x) (scroll y) (scroll z)\n    if <(hitbox) = [1]> then\n        if <(box_distance) < (round (_distance))> then\n            set [box_distance v] to (round (_distance))\n        end\n    else\n        if <(round (_distance)) < (box_distance)> then\n            set [box_distance v] to (round (_distance))\n        end\n    end\n    change [o v] by (3)\nend\nrepeat until <<(item (i) of [__object.box_distance v]) < (box_distance)> or <(box_distance) = (item (i) of [__object.box_distance v])>>\n    change [i v] by (1)\nend\nGet 3D distance from (x) (y) (z) to (scroll x) (scroll y) (scroll z)\nset [distance v] to (round (_distance))\nif <not <(only_use_box_coordinates?) = [1]>> then\n    repeat until <<(item (i) of [__object_distance v]) < (distance)> or <not <(box_distance) = (item (i) of [__object.box_distance v])>>>\n        change [i v] by (1)\n    end\nend\nif <(always-background?) = [1]> then\n    set [i v] to [1]\nend\n\ndefine (+) add body form corners [1] (x1) (y1) (z1) [2] (x2) (y2) (z2) [3] (x3) (y3) (z3) [color] (color) [mid] (mid-x) (mid-y) (mid-z) [use mid x as ref] (\[use mid x as ref\])\nif <<(aX rotation) = []> and <<(aY rotation) = []> and <(aZ rotation) = []>>> then\n    if <(\[use mid x as ref\]) = [1]> then\n        (+) Add graphical object x ((mid-x) + (x1)) ((mid-x) + (x2)) ((mid-x) + (x3)) y ((mid-y) + (y1)) ((mid-y) + (y2)) ((mid-y) + (y3)) z ((mid-z) + (z1)) ((mid-z) + (z2)) ((mid-z) + (z3)) color (color) fix_insert_position [] fix_xyz_refs (mid-x) (mid-y) (mid-z) fix_box_xyz (mid-x) (mid-y) (mid-z)\n    else\n        (+) Add graphical object x ((mid-x) + (x1)) ((mid-x) + (x2)) ((mid-x) + (x3)) y ((mid-y) + (y1)) ((mid-y) + (y2)) ((mid-y) + (y3)) z ((mid-z) + (z1)) ((mid-z) + (z2)) ((mid-z) + (z3)) color (color) fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz [] [] []\n    end\nelse\n    delete all of [object:corners v]\n    (3D) Go to (x1) (y1) (z1) render [0] perspective_proj [] rotation_mode [] object_mode [1] sort []\n    add (x) to [object:corners v]\n    add (y) to [object:corners v]\n    add (z) to [object:corners v]\n    (3D) Go to (x2) (y2) (z2) render [0] perspective_proj [] rotation_mode [] object_mode [1] sort []\n    add (x) to [object:corners v]\n    add (y) to [object:corners v]\n    add (z) to [object:corners v]\n    (3D) Go to (x3) (y3) (z3) render [0] perspective_proj [] rotation_mode [] object_mode [1] sort []\n    add (x) to [object:corners v]\n    add (y) to [object:corners v]\n    add (z) to [object:corners v]\n    (+) Add graphical object x ((mid-x) + (item (1) of [object:corners v])) ((mid-x) + (item (4) of [object:corners v])) ((mid-x) + (item (7) of [object:corners v])) y ((mid-y) + (item (2) of [object:corners v])) ((mid-y) + (item (5) of [object:corners v])) ((mid-y) + (item (8) of [hitbox_y_rotation v])) z ((mid-z) + (item (3) of [object:corners v])) ((mid-z) + (item (6) of [object:corners v])) ((mid-z) + (item (9) of [object:corners v])) color (color) fix_insert_position [] fix_xyz_refs [] [] [] fix_box_xyz [] [] []\nend\n\ndefine Rotate Map\nif <key (left arrow v) pressed?> then\n    change [y_angle v] by (5)\nend\nif <key (right arrow v) pressed?> then\n    change [y_angle v] by (-5)\nend\nif <key (down arrow v) pressed?> then\n    change [x_angle v] by (-5)\nend\nif <key (up arrow v) pressed?> then\n    change [x_angle v] by (5)\nend\nif <<mouse down?> and <not <(@mobile controls enabled) = [1]>>> then\n    change [y_angle v] by (((mouse x) - (_old_mouse_x)) / (-2))\n    change [x_angle v] by (((mouse y) - (_old_mouse_y)) / (1))\nend\nset [_old_mouse_x v] to (mouse x)\nset [_old_mouse_y v] to (mouse y)\nif <[-15] < (x_angle)> then\n    set [x_angle v] to [-15]\nend\nif <(x_angle) < [-90]> then\n    set [x_angle v] to [-90]\nend\n\nP = Translate [] [] [] by [0] [0] [180]\nP = Perspective Protection of (x) (y) (z) with focal length (zoom)\n\nif <(perspective_proj) = [0]> then\n\ndefine Camera (x rot)\nset [_camera:x sin v] to ([sin v] of (x rot) )\nset [_camera:y sin v] to ([sin v] of (y_angle) )\nset [_camera:x cos v] to ([cos v] of (x rot) )\nset [_camera:y cos v] to ([cos v] of (y_angle) )\nset [scroll x v] to ((player x) + (((_camera:y sin) * (_camera:x cos)) * (zoom)))\nset [scroll z v] to ((player z) - (((_camera:y cos) * (_camera:x cos)) * (zoom)))\nchange [scroll player y v] by (((scroll player y) - ((player y) + (15))) / (-4))\nset [scroll y v] to ((scroll player y) - ((_camera:x sin) * (zoom)))\n\ndefine Get 3D distance from (x1) (y1) (z1) to (x2) (y2) (z2)\n(3D) Go to (x1) (y1) (z1) render [0] perspective_proj [0] rotation_mode [0] object_mode [0] sort [0]\nset [x1 v] to (x)\nset [y1 v] to (y)\nset [z1 v] to ((z) + ())\n(3D) Go to (x2) (y2) (z2) render [0] perspective_proj [0] rotation_mode [0] object_mode [0] sort [0]\nif < (join (x1) (join (x) (join (y1) (join (y) (join (z1) (z)))))) contains [!]?> then\n    set [_distance v] to [100000000000000000000000000000000000000000000000000000]\nelse\n    set [_distance v] to ([sqrt v] of ((((x1) - (x)) * ((x1) - (x))) + ((((y1) - (y)) * ((y1) - (y))) + ((((z1) + (-75)) - (z)) * (((z1) + (-)) - (z))))) )\nend\n\nwait until <<<([abs v] of ((player x) - (scroll x)) ) < [50]> and <([abs v] of ((player y) - (scroll y)) ) < [50]>> and <([abs v] of ((player z) - (scroll z)) ) < [50]>>\n\nwhen I receive [@dead v]\nset [@paused v] to [0]\n\nwhen I receive [tick 2 v]\nRender Objects\nRotate Map\nif <(@mobile controls enabled) = [1]> then\n    Joystick\nend\nPhysics\n\ndefine (+) get box (x) (y) (z)\ndelete all of [_box v]\nadd (round (((x) + ()) / (50))) to [_box v]\nadd (round (((y) + ()) / (50))) to [_box v]\nadd (round (((z) + ()) / (50))) to [_box v]\nset [___x v] to (round (((x) + (-10)) / (50)))\nset [___y v] to (round (((y) + ()) / (50)))\nset [___z v] to (round (((z) + (-10)) / (50)))\nif <not <<(item (1) of [_box v]) = (___x)> and <(item (3) of [_box v]) = (___z)>>> then\n    add (___x) to [_box v]\n    add (___y) to [_box v]\n    add (___z) to [_box v]\nend\n\ndefine Add line from (x1) (y1) (z1) to (x2) (y2) (z2) size (size) color (color) y-sorting-offset (y-sorting-offset)\nif <<([abs v] of ((x1) - (player x)) ) < (@render distance)> and <<([abs v] of ((y1) - (player y)) ) < (@render distance)> and <([abs v] of ((z1) - (player z)) ) < (@render distance)>>> then\n    (+) get box (x1) ((y1) + (y-sorting-offset)) (z1)\n    (+) get insert pos coordinates (((x1) + (x2)) / (2)) (((y1) + (y2)) / (2)) (((z1) + (z2)) / (2)) only_use_box_coordinates? [0] hitbox? [1] always-background? []\n    insert (box_distance) at (i) of [__object.box_distance v] \n    insert (distance) at (i) of [__object_distance v] \n    insert (x1) at (i) of [objectx1 v] \n    insert (x2) at (i) of [objectx2 v] \n    insert [] at (i) of [objectx3 v] \n    insert (y1) at (i) of [objecty1 v] \n    insert (y2) at (i) of [objecty2 v] \n    insert [] at (i) of [objecty3 v] \n    insert (z1) at (i) of [objectz1 v] \n    insert (z2) at (i) of [objectz2 v] \n    insert (size) at (i) of [objectz3 v] \n    insert (join [line] []) at (i) of [object_hitbox_reference v] \n    insert (color) at (i) of [color v] \n    insert (join [line] []) at (i) of [object type v] \nend\n\ndefine Add fence (x) (y) (z) segments (segments) direction (direction)\nif <<([abs v] of ((x) - (player x)) ) < (@render distance)> and <<([abs v] of ((y) - (player y)) ) < (@render distance)> and <([abs v] of ((z) - (player z)) ) < (@render distance)>>> then\n    if <(direction) = [x]> then\n        set [i2 v] to [0]\n        (+) Add hitbox ((x) - (15)) (y) ((z) - (5)) type [ground1] x rotation [0] z rotation [0] y rotation [0] color [] l (((segments) * (25)) + (20)) [35] [10] with_graphical_element? [0] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n        repeat (segments)\n            Add line from ((x) + ((i2) * (25))) ((y) + (2)) (z) to ((x) + ((i2) * (25))) ((y) + (30)) (z) size [7.5] color [#575248] y-sorting-offset []\n            Add line from ((x) + ((((i2) + ()) * (25)) + (-7))) ((y) + (32)) (z) to ((x) + ((((i2) + (1)) * (25)) + (7))) ((y) + (32)) (z) size [13] color [#615b50] y-sorting-offset []\n            \n            if <((i2) mod (2)) = [1]> then\n                Add line from ((x) + ((i2) * (25))) ((y) + (2)) (z) to ((x) + ((((i2) + (1)) * (25)) + ())) ((y) + (30)) (z) size [6] color [#575248] y-sorting-offset []\n            else\n                Add line from ((x) + ((i2) * (25))) ((y) + (30)) (z) to ((x) + ((((i2) + (1)) * (25)) + ())) ((y) + (2)) (z) size [6] color [#575248] y-sorting-offset []\n            end\n            change [i2 v] by (1)\n        end\n        Add line from ((x) + ((i2) * (25))) ((y) + (2)) (z) to ((x) + ((i2) * (25))) ((y) + (30)) (z) size [7.5] color [#575248] y-sorting-offset []\n    else\n        set [i2 v] to [0]\n        (+) Add hitbox ((x) - (10)) (y) ((z) - (15)) type [ground1] x rotation [0] z rotation [0] y rotation [0] color [] l [10] [35] (((segments) * (25)) + (20)) with_graphical_element? [0] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n        repeat (segments)\n            Add line from (x) ((y) + (2)) ((z) + ((i2) * (25))) to (x) ((y) + (30)) ((z) + ((i2) * (25))) size [7.5] color [#575248] y-sorting-offset []\n            Add line from (x) ((y) + (32)) ((z) + ((((i2) + ()) * (25)) + (-7))) to (x) ((y) + (32)) ((z) + ((((i2) + (1)) * (25)) + (7))) size [13] color [#615b50] y-sorting-offset []\n            \n            if <((i2) mod (2)) = [1]> then\n                Add line from (x) ((y) + (2)) ((z) + ((i2) * (25))) to (x) ((y) + (30)) ((z) + ((((i2) + (1)) * (25)) + ())) size [6] color [#575248] y-sorting-offset []\n            else\n                Add line from (x) ((y) + (30)) ((z) + ((i2) * (25))) to (x) ((y) + (2)) ((z) + ((((i2) + (1)) * (25)) + ())) size [6] color [#575248] y-sorting-offset []\n            end\n            change [i2 v] by (1)\n        end\n        Add line from (x) ((y) + (2)) ((z) + ((i2) * (25))) to (x) ((y) + (30)) ((z) + ((i2) * (25))) size [7.5] color [#575248] y-sorting-offset []\n    end\nend\n\ndefine Add end flag at (x) (y) (z)\nif <<([abs v] of ((x) - (player x)) ) < (@render distance)> and <<([abs v] of ((y) - (player y)) ) < (@render distance)> and <([abs v] of ((z) - (player z)) ) < (@render distance)>>> then\n    set [ax rotation v] to [0]\n    set [ay rotation v] to [0]\n    set [az rotation v] to [0]\n    (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [] [0] [3] [-2] [] [0] [color] [#d17171] [mid] (x) ((y) + ((60) + (_flag:y))) (z) [use mid x as ref] []\n    (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [-17] [0] [3] [-25] [] [0] [color] [#d17171] [mid] (x) ((y) + ((60) + (_flag:y))) (z) [use mid x as ref] []\n    Add line from (x) (y) (z) to (x) ((y) + (60)) (z) size [9] color [#4f2a2a] y-sorting-offset []\n    if <(______won?) = [0]> then\n        (+) Add hitbox ((x) - (10)) (y) ((z) - (10)) type [endflag] x rotation [] z rotation [] y rotation [] color [] l [20] [100] [20] with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n    end\nend\n\nwhen I receive [@win v]\nset [_flag:y v] to [0]\nset [@paused v] to [1]\nrepeat (10)\n    change [_flag:y v] by (((_flag:y) - (-40)) / (-4))\nend\nbroadcast (popup0 v)\nset [@pause_rendering v] to [1]\nset [@paused v] to [0]\n\nwhen I receive [@levelup v]\nbroadcast (trans1 v) and wait\nwait (0.5) seconds\nset [_____checkpoint? v] to [0]\nchange [@level.id v] by (1)\nReset\nRespawn\nset [scroll x v] to [0]\nset [scroll player y v] to [0]\nset [______won? v] to [0]\nset [scroll z v] to [0]\nbroadcast (trans2 v)\nset [@paused v] to [0]\n\ndefine Add Spring at (x) (y) (z) x_rot (x_rot)\nif <<([abs v] of ((x) - (player x)) ) < (@render distance)> and <<([abs v] of ((y) - (player y)) ) < (@render distance)> and <([abs v] of ((z) - (player z)) ) < (@render distance)>>> then\n    set [ax rotation v] to [0]\n    set [ay rotation v] to (x_rot)\n    set [az rotation v] to [0]\n    Add line from ((x) + (-8)) ((y) + ()) ((z) + ()) to ((x) + (8)) ((y) + ((_spring_down) * (5))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    Add line from ((x) + (8)) ((y) + ()) ((z) + ()) to ((x) + (-8)) ((y) + ((_spring_down) * (5))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    Add line from ((x) + (-8)) ((y) + ((_spring_down) * (5))) ((z) + ()) to ((x) + (8)) ((y) + ((_spring_down) * (10))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    Add line from ((x) + (8)) ((y) + ((_spring_down) * (5))) ((z) + ()) to ((x) + (-8)) ((y) + ((_spring_down) * (10))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    Add line from ((x) + (-8)) ((y) + ((_spring_down) * (10))) ((z) + ()) to ((x) + (8)) ((y) + ((_spring_down) * (15))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    Add line from ((x) + (8)) ((y) + ((_spring_down) * (10))) ((z) + ()) to ((x) + (-8)) ((y) + ((_spring_down) * (15))) ((z) + ()) size [5] color [#3d3720] y-sorting-offset []\n    (+) add body form corners [1] [-11] [] [11] [2] [-11] [] [-11] [3] [11] [] [11] [color] [#d4bd6a] [mid] (x) ((y) + ((_spring_down) * (19))) (z) [use mid x as ref] []\n    (+) add body form corners [1] [11] [] [11] [2] [-11] [] [-11] [3] [11] [] [-11] [color] [#d4bd6a] [mid] (x) ((y) + ((_spring_down) * (19))) (z) [use mid x as ref] []\n    (+) Add hitbox ((x) - (10)) (y) ((z) - (10)) type [spring] x rotation [] z rotation [] y rotation [] color [] l [20] [20] [20] with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\nend\n\ndefine Add coin (x) (y) (z)\nif <<([abs v] of ((x) - (player x)) ) < (@render distance)> and <<([abs v] of ((y) - (player y)) ) < (@render distance)> and <([abs v] of ((z) - (player z)) ) < (@render distance)>>> then\n    if <<(____coin_removed) = (join (x) (join (join [,] (y)) (join [,] (z))))> or <not <[@collected_coins v] contains (join (x) (join (join [,] (y)) (join [,] (z))))?>>> then\n        set [ax rotation v] to [0]\n        set [ay rotation v] to [0]\n        set [az rotation v] to [0]\n        (+) get box (x) (y) (z)\n        (+) get insert pos coordinates (x) (y) (z) only_use_box_coordinates? [0] hitbox? [0] always-background? [0]\n        insert (box_distance) at (i) of [__object.box_distance v] \n        insert (distance) at (i) of [__object_distance v] \n        insert (x) at (i) of [objectx1 v] \n        insert [] at (i) of [objectx2 v] \n        insert [] at (i) of [objectx3 v] \n        insert (y) at (i) of [objecty1 v] \n        insert [] at (i) of [objecty2 v] \n        insert [] at (i) of [objecty3 v] \n        insert (z) at (i) of [objectz1 v] \n        insert [] at (i) of [objectz3 v] \n        insert (join [coin] []) at (i) of [object_hitbox_reference v] \n        insert [] at (i) of [color v] \n        insert (join [coin] []) at (i) of [object type v] \n        if <[@collected_coins v] contains (join (x) (join (join [,] (y)) (join [,] (z))))?> then\n            insert [collected] at (i) of [objectz2 v] \n        else\n            (+) Add hitbox ((x) - (10)) ((y) - (10)) ((z) - (10)) type [coin] x rotation [] z rotation [] y rotation [] color [] l [20] [40] [20] with_graphical_element? [0] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n            insert [] at (i) of [objectz2 v] \n        end\n    end\nend\n\nwhen flag clicked\nforever\n    set [______coin_frame v] to [1]\n    repeat (5)\n        wait (0.1) seconds\n        change [______coin_frame v] by (1)\n    end\n    repeat (5)\n        wait (0.1) seconds\n        change [______coin_frame v] by (-1)\n    end\nend\n\nwhen I receive [@coin v]\nset [____coin_removed_size v] to [100]\nrepeat (10)\n    change [____coin_removed_size v] by (10)\nend\nset [____coin_removed v] to [0]\n\ndefine Add checkpoint flag (x) (y) (z)\nset [______checkpoint-x v] to (x)\nset [______checkpoint-y v] to (y)\nset [______checkpoint-z v] to (z)\nif <<([abs v] of ((x) - (player x)) ) < (@render distance)> and <<([abs v] of ((y) - (player y)) ) < (@render distance)> and <([abs v] of ((z) - (player z)) ) < (@render distance)>>> then\n    set [ax rotation v] to [0]\n    set [ay rotation v] to [0]\n    set [az rotation v] to [0]\n    if <(_____checkpoint?) = [0]> then\n        (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [] [0] [3] [-2] [] [0] [color] [#717fd1] [mid] (x) ((y) + ((60) + (_flag:y))) (z) [use mid x as ref] []\n        (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [-17] [0] [3] [-25] [] [0] [color] [#717fd1] [mid] (x) ((y) + ((60) + (_flag:y))) (z) [use mid x as ref] []\n        Add line from (x) (y) (z) to (x) ((y) + (60)) (z) size [9] color [#4f2a2a] y-sorting-offset []\n        (+) Add hitbox ((x) - (10)) (y) ((z) - (10)) type [checkpoint] x rotation [] z rotation [] y rotation [] color [] l [20] [100] [20] with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n    else\n        (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [] [0] [3] [-2] [] [0] [color] [#7b82ad] [mid] (x) ((y) + ((20) + (_flag:y))) (z) [use mid x as ref] []\n        (+) add body form corners [1] [-2] [-17] [0] [2] [-25] [-17] [0] [3] [-25] [] [0] [color] [#7b82ad] [mid] (x) ((y) + ((20) + (_flag:y))) (z) [use mid x as ref] []\n        Add line from (x) (y) (z) to (x) ((y) + (60)) (z) size [9] color [#4f2a2a] y-sorting-offset []\n    end\nend\n\nwhen flag clicked\nbroadcast (trans2 v)\nInit\nbroadcast (@welcome-popup v)\nforever\n    if <(@pause_rendering) = [0]> then\n        erase all\n        Reset\n        Add objects\n        if <(@killed) = [0]> then\n            if <not <(@LEVEL.id) = [0]>> then\n                Add player object\n                if <key (n v) pressed?> then\n                    if <not <(@LEVEL.id) = [4]>> then\n                        broadcast (@levelup v)\n                    end\n                end\n            end\n        end\n        broadcast (tick v)\n        broadcast (tick 2 v)\n    end\nend\n\ndefine Add Player shadow\n(m) collision - shadow? [1]\nset [shadow possible v] to []\nset [shadow possible distance max v] to [1e10]\nrepeat until <not <[h_collision v] contains [ground1]?>>\n    set [i2 v] to (item # of [ground1] in [h_collision v])\n    if <[0] < (item (i2) of [h_shadow_collision_y v])> then\n        if <(item (i2) of [h_shadow_collision_y v]) < (shadow possible distance max)> then\n            set [shadow possible v] to (i2)\n            set [shadow possible distance max v] to (item (i2) of [h_shadow_collision_y v])\n        end\n    end\n    if <((item (i2) of [hitbox_x_rotation v]) + ((item (i2) of [hitbox_y_rotation v]) + (item (i2) of [hitbox_z_rotation v]))) = [0]> then\n    replace item (i2) of [h_collision v] with [handled]\nend\nif <not <(shadow possible) = []>> then\n    set [ax rotation v] to []\n    set [ay rotation v] to []\n    set [az rotation v] to []\n    change [shadow possible distance max v] by (-10)\n    (+) get box (player x) (((player y) - (shadow possible distance max)) + (-20)) (player z)\n    (+) get insert pos coordinates (player x) (((player y) - (shadow possible distance max)) + (-20)) (player z) only_use_box_coordinates? [0] hitbox? [0] always-background? []\n    insert (box_distance) at (i) of [__object.box_distance v] \n    insert (distance) at (i) of [__object_distance v] \n    insert (player x) at (i) of [objectx1 v] \n    insert [] at (i) of [objectx2 v] \n    insert [] at (i) of [objectx3 v] \n    insert ((player y) - (shadow possible distance max)) at (i) of [objecty1 v] \n    insert [] at (i) of [objecty2 v] \n    insert [] at (i) of [objecty3 v] \n    insert (player z) at (i) of [objectz1 v] \n    insert [] at (i) of [objectz2 v] \n    insert [] at (i) of [objectz3 v] \n    insert (join [shadow] []) at (i) of [object_hitbox_reference v] \n    insert (color) at (i) of [color v] \n    insert (join [shadow] []) at (i) of [object type v] \nend\n\ndefine Add cactus (x) (y) (z)\nAdd line from (x) (y) (z) to (x) ((y) + (30)) (z) size [13] color [#3e613d] y-sorting-offset []\nAdd line from ((x) + (7)) ((y) + (20)) (z) to ((x) + ()) ((y) + (20)) (z) size [9] color [#497348] y-sorting-offset []\nAdd line from ((x) + (7)) ((y) + (20)) (z) to ((x) + (7)) ((y) + (33)) (z) size [9] color [#497348] y-sorting-offset []\nAdd line from ((x) + (-7)) ((y) + (23)) (z) to ((x) + ()) ((y) + (23)) (z) size [9] color [#497348] y-sorting-offset []\nAdd line from ((x) + (-7)) ((y) + (23)) (z) to ((x) + (-7)) ((y) + (37)) (z) size [9] color [#497348] y-sorting-offset []\nAdd line from ((x) + ()) ((y) + (17)) (z) to ((x) + ()) ((y) + (17)) ((z) + (-6)) size [9] color [#497348] y-sorting-offset []\nAdd line from ((x) + ()) ((y) + (17)) ((z) + (-6)) to (x) ((y) + (30)) ((z) + (-6)) size [9] color [#497348] y-sorting-offset []\n(+) Add hitbox ((x) + (-7)) (y) ((z) + (-6)) type [ground1] x rotation [] z rotation [] y rotation [] color [] l [14] [37] [12] with_graphical_element? [] always_background? [] impulses (xyz) [] [] [] IndependentTexture []\n\n@Background\n\nwhen I receive [tick v]\nif <<(@LEVEL.id) = [2]> or <(@LEVEL.id) = [3]>> then\n    switch costume to (join [2-] (((i) + (1)) mod (4)))\nelse\n    switch costume to (1 v)\nend\nset size to (100) %\nshow\ngo to [back v] layer\nclear graphic effects\ngo to x: ((((scroll x) + ()) + ((i) * (-1155))) / (-5)) y: ((([tan v] of (() - (x_angle)) ) * (zoom)) + ((-200) - (scroll y)))\nstamp\nhide\n\ndefine clone\nset [i v] to [-1]\nrepeat (3)\n    create clone of (_myself_ v)\n    change [i v] by (2)\nend\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nhide\n\nwhen flag clicked\nset size to (100) %\nclone\n\n@//📊 Scratch Analytics by @TimMcCool2\n\ndefine Send Data (payload)\nset [☁ to_host v] to (payload)\n\ndefine Encode (input)\nset [//output v] to []\nset [i v] to [0]\nrepeat (length of (input))\n    change [i v] by (1)\n    switch costume to (join [=] (letter (i) of (input)))\n    set [//output v] to (join (//output) (costume [number v]))\nend\n\nwhen I receive [close v]\nEncode (join (username) (join [,] (join (current [hour v]) (join [,] (item (@device) of [//devices v])))))\nSend Data (//output)\n\n@Thumbnail\n\nwhen flag clicked\nhide\nforever\n    reset timer\n    set [ghost v] effect to (100)\nend\n\nchange [ghost v] effect by (-10)\n\nwhen [timer v] > (0)\nwait (0.15) seconds\nshow\nswitch costume to (thumbnail2 v)\nset size to (200) %\nif <is compiled?> then\n    switch costume to (thumbnail-turbowarp v)\nend\nset [ghost v] effect to (100)\nrepeat (100)\n    switch costume to (thumbnail2 v)\n    go to [front v] layer\n    go [backward v] (1) layers\n    change size by (((size) - (100)) / (-3))\n    change [ghost v] effect by (-10)\n    change size by (((size) - (100)) / (-8))\n    if <is compiled?> then\n        switch costume to (thumbnail-turbowarp v)\n    end\nend\n\n@Overlay\n\nwhen flag clicked\nhide\nforever\n    go to [front v] layer\nend\n\nwhen I receive [trans2 v]\nshow\nclear graphic effects\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen I receive [trans1 v]\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\n\n@FPS Counter\n\nwhen flag clicked\nhide\nset size to (50) %\nset [i v] to [0]\nrepeat (10)\n    change [i v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nset [brightness v] effect to (-100)\nswitch costume to (letter (i) of (@FPS))\nforever\n    set [ghost v] effect to (40)\n    show\n    set size to (38) %\n    set y to (158)\n    set x to ((((1) * (item (1) of [screen size v])) + (-50)) + (((i) - ()) * (15)))\n    wait until <not <(costume [name v]) = (letter (i) of (@FPS))>>\n    repeat (5)\n        change [ghost v] effect by (12)\n        change y by (-1)\n    end\n    switch costume to (letter (i) of (@FPS))\n    set y to (168)\n    set x to ((((1) * (item (1) of [screen size v])) + (-50)) + (((i) - ()) * (15)))\n    repeat (5)\n        change [ghost v] effect by (-12)\n        change y by (((y position) - (158)) / (-2))\n    end\n    set x to ((((1) * (item (1) of [screen size v])) + (-50)) + (((i) - ()) * (15)))\nend\n\nwhen flag clicked\nforever\n    set [@coins v] to (length of [@collected_coins v])\nend\n\n@Coins Counter\n\nwhen flag clicked\nhide\nset size to (50) %\nset [i v] to [0]\nrepeat (10)\n    change [i v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nset [brightness v] effect to (-100)\nswitch costume to (letter (i) of (@Coins))\nforever\n    set [ghost v] effect to (40)\n    show\n    set size to (50) %\n    set y to (155)\n    set x to ((((-1) * (item (1) of [screen size v])) + (40)) + (((i) - ()) * (20)))\n    wait until <not <(costume [name v]) = (letter (i) of (@Coins))>>\n    repeat (5)\n        change [ghost v] effect by (12)\n        change y by (-1)\n    end\n    switch costume to (letter (i) of (@Coins))\n    set y to (160)\n    set x to ((((-1) * (item (1) of [screen size v])) + (40)) + (((i) - ()) * (20)))\n    repeat (5)\n        change [ghost v] effect by (-12)\n        change y by (((y position) - (155)) / (-2))\n    end\n    set x to ((((-1) * (item (1) of [screen size v])) + (40)) + (((i) - ()) * (20)))\nend\n\nwhen flag clicked\nforever\n    set [@coins v] to (length of [@collected_coins v])\nend\n\n@Counter Bg\n\nwhen flag clicked\ncreate clone of (_myself_ v)\nforever\n    show\n    go to x: ((item (1) of [screen size v]) * (-1)) y: (180)\n    go to [back v] layer\n    if <<(@LEVEL.id) = [2]> or <(@LEVEL.id) = [3]>> then\n        switch costume to (coins2 v)\n    else\n        switch costume to (coins1 v)\n    end\nend\n\nwhen I start as a clone\nforever\n    show\n    go to x: ((item (1) of [screen size v]) * (1)) y: (180)\n    go to [back v] layer\n    if <<(@LEVEL.id) = [2]> or <(@LEVEL.id) = [3]>> then\n        switch costume to (fps2 v)\n    else\n        switch costume to (fps1 v)\n    end\nend\n\nwhen [timer v] > (0)\nhide\n\n@Screen Meizurizer\n\nwhen flag clicked\nswitch costume to (costume2 v)\ngo to x: (1e100) y: (1e100)\ndelete all of [screen size v]\nadd (x position) to [screen size v]\nadd (y position) to [screen size v]\n\n@NextLevel Button\n\nwhen flag clicked\nhide\nset x to (0)\ngo to x: (0) y: (200)\nforever\n    show\n    if <<([open v] of [level complete popup v]) = [0]> and <<(______won?) = [1]> and <<(@LEVEL.id) < [3]> and <(@passed) = [1]>>>> then\n        change y by (((y position) - (140)) / (-3.5))\n        if <touching (mouse-pointer v)?> then\n            set [ghost v] effect to (35)\n            if <mouse down?> then\n                set [ghost v] effect to (70)\n                wait until <not <mouse down?>>\n                set [@pause_rendering v] to [0]\n                set [@paused v] to [1]\n                broadcast (@levelup v)\n                repeat (10)\n                    change [ghost v] effect by (10)\n                end\n                set y to (200)\n                wait (3) seconds\n            end\n        else\n            change [ghost v] effect by (-10)\n        end\n    else\n        set [ghost v] effect to (90)\n        change y by (((y position) - (200)) / (-3.5))\n    end\nend\n\n@Level Complete Popup\n\nset [@paused v] to [1]\nset [@pause_rendering v] to [0]\nbroadcast (@respawn v)\n\ndefine sb\nset [vel2 v] to (((vel2) * (0.65)) + ((((100) + ()) - (size)) * (0.15)))\nchange size by (vel2)\nchange y by ((y position) / (-3))\n\nwhen I receive [popup0 v]\ndelete all of [h_collision v]\nif <(open) = [0]> then\n    broadcast (@confetti v)\n    go to x: (0) y: (0)\n    stop [other scripts in sprite v]\n    set [@pause_rendering v] to [1]\n    set [open v] to [1]\n    start sound [unlock v]\n    if <(@LEVEL.id) = [4]> then\n        set [clone-id v] to [demo-end]\n        create clone of (_myself_ v)\n        set [clone-id v] to [close2]\n        create clone of (_myself_ v)\n        set [clone-id v] to [bg]\n        create clone of (_myself_ v)\n    else\n        set [clone-id v] to [win]\n        create clone of (_myself_ v)\n        set [clone-id v] to [close]\n        create clone of (_myself_ v)\n        set [clone-id v] to [continue]\n        create clone of (_myself_ v)\n        set [clone-id v] to [bg]\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [close0 v]\nrepeat (10)\n    change size by (((size) - (70)) / (-4.5))\n    change [ghost v] effect by (15)\nend\nhide\ndelete this clone\n\ndefine effect 1\nshow\nif <(clone-id) = [bg]> then\n\nwhen I start as a clone\nforever\n    if <<(clone-id) = [close]> or <(clone-id) = [close2]>> then\n        if <(open) = [1]> then\n            change [ghost v] effect by (-10)\n            if <touching (mouse-pointer v)?> then\n                set [ghost v] effect to (50)\n                if <mouse down?> then\n                    set [ghost v] effect to (40)\n                    wait until <not <mouse down?>>\n                    set [@passed v] to [1]\n                    set [______won? v] to [1]\n                    set [@pause_rendering v] to [0]\n                    broadcast (close0 v)\n                    stop [this script v]\n                end\n            end\n        end\n    else\n        if <(clone-id) = [bg]> then\n            if <(open) = [1]> then\n                go to [back v] layer\n                go [forward v] (2) layers\n                set size to (100) %\n            end\n        else\n            if <(clone-id) = [continue]> then\n                if <(open) = [1]> then\n                    go to [front v] layer\n                    change [ghost v] effect by (-10)\n                    if <touching (mouse-pointer v)?> then\n                        set [ghost v] effect to (50)\n                        if <mouse down?> then\n                            set [ghost v] effect to (40)\n                            wait until <not <mouse down?>>\n                            set [@passed v] to [0]\n                            set [______won? v] to [1]\n                            set [@paused v] to [1]\n                            set [@pause_rendering v] to [0]\n                            broadcast (@levelup v)\n                            broadcast (close0 v)\n                            stop [this script v]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [open v] to [0]\n\nwhen flag clicked\nhide\n\nwhen [timer v] > (0)\nhide\n\nwhen I receive [close0 v]\nset [open v] to [0]\nwait (0.1) seconds\nset [@paused v] to [0]\n\nwhen I start as a clone\nswitch costume to (clone-id)\n\nwhen I start as a clone\nif <(clone-id) = [bg]> then\n    if <(open) = [1]> then\n        set [ghost v] effect to (100)\n        repeat (10)\n            change [ghost v] effect by (-4)\n        end\n    end\nend\n\nwhen I start as a clone\neffect 1\n\n@Welcome Popup\n\nwhen I start as a clone\nforever\n    \n        hide\n        stop [other scripts in sprite v]\n    end\nend\n\nwhen I receive [close v]\nwait (0.1) seconds\n\ndefine sb\nset [vel2 v] to (((vel2) * (0.65)) + ((((100) + ()) - (size)) * (0.15)))\nchange size by (vel2)\nchange y by ((y position) / (-3))\n\nwhen I receive [@welcome-popup v]\nif <(open) = [0]> then\n    go to x: (0) y: (0)\n    stop [other scripts in sprite v]\n    set [open v] to [1]\n    if <is compiled?> then\n        set [clone-id v] to [welcome-turbowarp]\n        create clone of (_myself_ v)\n        set [clone-id v] to [okay]\n        create clone of (_myself_ v)\n        set [clone-id v] to [bg]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device1]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device2]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device3]\n        create clone of (_myself_ v)\n    else\n        set [clone-id v] to [welcome-scratch]\n        create clone of (_myself_ v)\n        set [clone-id v] to [okay]\n        create clone of (_myself_ v)\n        set [clone-id v] to [bg]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device1]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device2]\n        create clone of (_myself_ v)\n        set [clone-id v] to [device3]\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [close v]\nrepeat (10)\n    change size by (((size) - (70)) / (-4.5))\n    change [ghost v] effect by (15)\nend\nhide\ndelete this clone\n\ndefine effect 1\nshow\nif <(clone-id) = [bg]> then\n\nwhen I start as a clone\nforever\n    if < (clone-id) contains [device]?> then\n        if <(letter (7) of (clone-id)) = (@device)> then\n            clear graphic effects\n            set [brightness v] effect to (-10)\n        else\n            clear graphic effects\n            set [ghost v] effect to (80)\n            if <touching (mouse-pointer v)?> then\n                set [ghost v] effect to (40)\n                if <mouse down?> then\n                    set [ghost v] effect to (0)\n                    set [@device v] to (letter (7) of (clone-id))\n                end\n            end\n        end\n    else\n        if <<(clone-id) = [okay]> or <(clone-id) = [start-game]>> then\n            if <(open) = [1]> then\n                change [ghost v] effect by (-10)\n                if <touching (mouse-pointer v)?> then\n                    set [ghost v] effect to (50)\n                    if <mouse down?> then\n                        set [ghost v] effect to (40)\n                        wait until <not <mouse down?>>\n                        broadcast (close v)\n                        broadcast (@levelup v)\n                        stop [this script v]\n                    end\n                end\n            end\n        else\n            if <(clone-id) = [bg]> then\n                if <(open) = [1]> then\n                    go to [back v] layer\n                    go [forward v] (5) layers\n                    set size to (100) %\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [open v] to [0]\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\nset [open v] to [0]\nswitch costume to (pick random (1) to (1))\nnext costume\nrepeat until <(costume [number v]) = [1]>\n    wait (0.1) seconds\n    next costume\nend\nhide\n\nwhen [timer v] > (0)\nhide\n\nwhen I receive [close v]\nset [open v] to [0]\n\nwhen I start as a clone\nswitch costume to (clone-id)\n\nwhen I start as a clone\nif <(clone-id) = [bg]> then\n    if <(open) = [1]> then\n        set [ghost v] effect to (100)\n        repeat (10)\n            change [ghost v] effect by (-4)\n        end\n    end\nend\n\nwhen I start as a clone\neffect 1\n\n@Particle Effect\n\nwhen I start as a clone\nset [y v] to [30]\nshow\neff (pick random (-10) to (10))\n\ndefine eff (x)\nset [color v] effect to (pick random (0) to (200))\nset [ghost v] effect to (0)\nset [brightness v] effect to (pick random (-50) to (50))\nforever\n    go to [front v] layer\n    change x by (x)\n    change y by (y)\n    change [y v] by (-2)\n    if <(y position) < [-170]> then\n        delete this clone\n    end\nend\n\nwhen I receive [@confetti v]\ngo to x: (pick random (200) to (-200)) y: (-180)\nrepeat (10)\n    create clone of (_myself_ v)\nend\n\n@Bouncing icon\n\nwhen flag clicked\nhide\n\nwhen [timer v] > (0)\nwait (0.15) seconds\nshow\nset size to (100) %\nset [ghost v] effect to (100)\ngo to x: (203) y: (-144)\nchange y by (-100)\nforever\n    go to [front v] layer\n    change [ghost v] effect by (-10)\n    set [bounce_3_vel v] to (((bounce_3_vel) * (0.6)) + (((y position) - (-144)) * (-0.2)))\n    change y by (bounce_3_vel)\nend\n\nwhen [timer v] > (0)\nforever\n    wait until <touching (mouse-pointer v)?>\n    repeat (10)\n        change [brightness v] effect by (5)\n    end\n    wait until <not <touching (mouse-pointer v)?>>\n    repeat (10)\n        change [brightness v] effect by (-5)\n    end\n    clear graphic effects\nend\n\nwhen [timer v] > (0)\nforever\n    repeat until <touching (mouse-pointer v)?>\n        change size by (((size) - (100)) / (-4))\n    end\n    wait until <not <touching (mouse-pointer v)?>>\n    start sound [Boing v]\n    set size to (100) %\n    set [__stop_effect_size_vel v] to [20]\n    repeat (17)\n        change [__stop_effect_size_vel v] by (-2.5)\n        change size by (__stop_effect_size_vel)\n    end\nend\n\n