⭐️ Rescue (A non-generic Platformer) Part 1⭐️

Instructions: This is my first platformer.\nAfter weeks of preparation, I have finally completed part 1 of Rescue. It seems that about 99% of platformers on Scratch are generic, with ground, spikes, lava, and a few other things, but this isn't! In fact, it's probably one of the least generic platformers I've ever seen on Scratch. Play for proof, but don't stop before level 4, because 1-3 are pretty generic levels.\n\nInstructions:\n\nUse w, a, d or up arrow, left, right to move around. When you get to it, hit s to use your lightsaber, or z to start firing golf balls. Skip a level using the n button.\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n#platformer #art #story #games #game #all #ball #non-generic #nongeneric #complex #platforms #cloud #platformers #fighting #boss #boss battle #weapons #AI #lives #fun #amazing #awesome #time #hashtags\n#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all#games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all #games #all \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\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\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\n\n\n\nComment "HumanCalc7 is so amazing!"

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\nwait until <(Level) = [12]>\nswitch backdrop to (backdrop2 v)\nwait until <(Level) = [18]>\nswitch backdrop to (backdrop1 v)\n\nwhen flag clicked\nrepeat until <(backdrop [number v]) = [2]>\n    play sound [Video Game 3 v] until done\nend\nrepeat until <(backdrop [number v]) = [1]>\n    play sound [Video Game 2 v] until done\nend\n\n@Player\n\nwhen flag clicked\nset size to (60) %\nswitch costume to (circle character thing v)\nwait (1) seconds\n\nwhen flag clicked\nset [speed y v] to [0]\nforever\n    switch costume to (circle character thing v)\n    change y by (Speed y)\n    change [speed y v] by (-1)\n    Touch Ground <(Speed y) > [0]>\nend\n\nwhen flag clicked\ngo to x: (-200) y: (-63)\n\ndefine Touch Ground <up?>\nif <(Level) > [11]> then\n    change [falling v] by (0.01)\nelse\n    change [falling v] by (0.1)\nend\nrepeat until <<not <touching (the ground v)?>> and <<not <touching (left ground v)?>> and <not <touching (right ground v)?>>>>\n    set [speed y v] to [0]\n    if <up?> then\n        change y by (-4)\n    end\n    if <up?> then\n        change y by (-4)\n    else\n        if <(Slope) < [1]> then\n            if <touching (the ground v)?> then\n                change y by (2)\n                set [falling v] to [0]\n            end\n            if <touching (the ground v)?> then\n                change y by (2)\n            end\n            if <touching (the ground v)?> then\n                change y by (2)\n            end\n            if <touching (the ground v)?> then\n                change y by (2)\n            end\n            if <touching (the ground v)?> then\n                change y by (2)\n            end\n            if <touching (the ground v)?> then\n                change y by (2)\n            end\n            if <touching (the ground v)?> then\n                change y by (4)\n            end\n            if <touching (the ground v)?> then\n                change y by (4)\n            end\n        else\n            if <touching (the ground v)?> then\n                change y by (2)\n                set [falling v] to [0]\n            end\n        end\n    end\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <touching (the ground v)?>>>\n    change y by (2)\n    change [slope v] by (1)\nend\nif <(Slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (Slope))\nend\n\nwhen flag clicked\nset size to (60) %\nrepeat until <(Level) = [7]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [3]>> then\n        if <<(jump key) = [0]> and <(falling) < [3]>> then\n            set [speed y v] to [18]\n            set [falling v] to [4]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\nwait until <(Level) = [7]>\nset size to (30) %\nrepeat until <(Level) = [8]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [1.5]>> then\n        if <<(jump key) = [0]> and <(falling) < [1.5]>> then\n            set [speed y v] to [12]\n            set [falling v] to [2]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\nwait until <(Level) = [8]>\nset size to (45) %\nrepeat until <(Level) = [12]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [2.5]>> then\n        if <<(jump key) = [0]> and <(falling) < [2.5]>> then\n            set [speed y v] to [15]\n            set [falling v] to [3]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\nwait until <(Level) = [12]>\nset size to (15) %\nrepeat until <(Level) = [16]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [0.25]>> then\n        if <<(jump key) = [0]> and <(falling) < [0.25]>> then\n            set [speed y v] to [10]\n            set [falling v] to [0.5]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\nwait until <(Level) = [16]>\nset size to (45) %\nrepeat until <(Level) = [17]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [0.25]>> then\n        if <<(jump key) = [0]> and <(falling) < [0.25]>> then\n            set [speed y v] to [25]\n            set [falling v] to [0.5]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\nwait until <(Level) = [17]>\nset size to (50) %\nrepeat until <(Level) = [999]>\n    if <<<key (space v) pressed?> or <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>>> and <(falling) < [0.25]>> then\n        if <<(jump key) = [0]> and <(falling) < [0.25]>> then\n            set [speed y v] to [25]\n            set [falling v] to [0.5]\n            set [jump key v] to [1]\n        else\n            set [jump key v] to [0]\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <<(Speed y) < [4]> or <<key (space v) pressed?> or <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>>>> then\n        if <touching (bounce pads v)?> then\n            change [speed y v] by (-7)\n            wait (0.1) seconds\n            change [speed y v] by (5)\n        else\n            change [speed y v] by (-1)\n        end\n    else\n        change [speed y v] by (-2)\n    end\nend\n\nwhen flag clicked\ngo [forward v] (1) layers\nhide variable [slope v]\nhide variable [speed y v]\nhide variable [speed x v]\nhide variable [falling v]\nhide variable [jump key v]\nset rotation style [left-right v]\nset [speed x v] to [0]\nset [speed x v] to ((speed x) * (0.5))\nforever\n    if <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        if <touching (bounce pads v)?> then\n            change [speed x v] by (-0.5)\n            switch costume to (moving ball v)\n            wait (0.1) seconds\n            change [speed x v] by (-0.3)\n        else\n            if <<(Level) = [12]> or <(Level) = [13]>> then\n                switch costume to (moving ball v)\n                change [speed x v] by (-0.04)\n            else\n                if <(Level) = [17]> then\n                    switch costume to (moving ball v)\n                    change [speed x v] by (-0.25)\n                else\n                    switch costume to (moving ball v)\n                    change [speed x v] by (-0.1)\n                end\n            end\n        end\n    else\n        if <<key (d v) pressed?> or <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n            if <touching (bounce pads v)?> then\n                change [speed x v] by (0.5)\n                switch costume to (moving ball v)\n                wait (0.1) seconds\n                change [speed x v] by (0.3)\n            else\n                if <<(Level) = [12]> or <(Level) = [13]>> then\n                    switch costume to (moving ball v)\n                    change [speed x v] by (0.04)\n                else\n                    if <(Level) = [17]> then\n                        switch costume to (moving ball v)\n                        change [speed x v] by (0.25)\n                    else\n                        switch costume to (moving ball v)\n                        change [speed x v] by (0.1)\n                    end\n                end\n            end\n        else\n            set [speed x v] to ((speed x) * (0.5))\n        end\n    end\n    if <(speed x) < [0.18]> then\n        if <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n            if <not <touching (right ground v)?>> then\n                Walk [-90] (speed x)\n            else\n                change x by (1)\n                set [speed x v] to [0]\n            end\n        end\n    else\n        if <(speed x) > [-0.18]> then\n            if <<key (d v) pressed?> or <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n                if <not <touching (left ground v)?>> then\n                    Walk [90] (speed x)\n                else\n                    change x by (-1)\n                    set [speed x v] to [0]\n                end\n            end\n        else\n            switch costume to (circle character thing v)\n        end\n    end\nend\n\nwhen I receive [next level v]\nchange [level v] by (1)\nwait until <touching (next level ball v)?>\ngo to x: (-200) y: (-63)\n\nwhen flag clicked\nshow variable [level v]\nset [level v] to [1]\nforever\n    wait until <touching (next level ball v)?>\n    broadcast (Next Level v)\nend\n\nwhen flag clicked\nset [lives v] to [9]\n\nwhen flag clicked\nforever\n    if <touching (left ground v)?> then\n        change x by (-1)\n        set [speed x v] to [0]\n    end\n    if <touching (left ground v)?> then\n        change x by (-1)\n        set [speed x v] to [0]\n    end\n    if <touching (left ground v)?> then\n        change x by (-1)\n        set [speed x v] to [0]\n    end\n    if <touching (left ground v)?> then\n        change x by (-1)\n        set [speed x v] to [0]\n    end\n    if <touching (right ground v)?> then\n        change x by (1)\n        set [speed x v] to [0]\n    end\n    if <touching (right ground v)?> then\n        change x by (1)\n        set [speed x v] to [0]\n    end\n    if <touching (right ground v)?> then\n        change x by (1)\n        set [speed x v] to [0]\n    end\n    if <touching (right ground v)?> then\n        change x by (1)\n        set [speed x v] to [0]\n    end\nend\n\nwhen [r v] key pressed\ngo to x: (-200) y: (-63)\nset [speed x v] to [0]\n\nwhen I receive [die! v]\nchange [whirl v] effect by (500)\nchange [lives v] by (-1)\ngo to x: (-200) y: (-63)\nset [whirl v] effect to (0)\nset [speed x v] to [0]\n\nwhen flag clicked\nforever\n    if <touching (water v)?> then\n        broadcast (Die! v)\n    end\nend\n\nwhen flag clicked\nwait until <(Lives) = [0]>\nbroadcast (Game Over! v)\n\nwhen flag clicked\nforever\n    if <(y position) < [-175]> then\n        broadcast (Die! v)\n    end\nend\n\nwhen I receive [game over! v]\nhide\n\nwhen flag clicked\nset [falling v] to [0]\nset [lives v] to [9]\n\nwhen flag clicked\nshow\n\nwhen flag clicked\nforever\n    if <touching (bounce pads v)?> then\n        change [falling v] by (-10)\n        change [speed y v] by (10)\n    end\nend\n\nwhen [n v] key pressed\nchange [level v] by (1)\nset [speed x v] to [0]\ngo to x: (-200) y: (-63)\n\nwhen flag clicked\nforever\n    if <touching (enemies v)?> then\n        broadcast (Die! v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (left air v)?> then\n        change x by (-1)\n    end\n    if <touching (right air v)?> then\n        change x by (1)\n    end\n    if <touching (up air v)?> then\n        change y by (2)\n        set [falling v] to [0]\n        set [speed y v] to [0]\n    end\n    if <touching (super right air v)?> then\n        change x by (2)\n        change [speed x v] by (3)\n    end\nend\n\nwhen flag clicked\nshow variable [your time v]\nrepeat until <(Level) = [18]>\n    set [your time v] to (timer)\nend\nif <(Your Time) < (☁ World Record Time)> then\n    set [☁ world record time v] to (Your Time)\nend\n\nwhen flag clicked\nhide variable [☁ world record time v]\nwait until <(Level) = [18]>\nshow variable [☁ world record time v]\nhide variable [boss health v]\n\nwhen [w v] key pressed\nplay sound [Jump v] until done\n\nwhen [up arrow v] key pressed\nplay sound [Jump v] until done\n\nwhen [space v] key pressed\nplay sound [Jump v] until done\n\nwhen [a v] key pressed\nchange [speed x v] by (-1)\nwait until <not <key (a v) pressed?>>\n\nwhen [d v] key pressed\nchange [speed x v] by (1)\nwait until <not <key (d v) pressed?>>\n\nwhen [left arrow v] key pressed\nchange [speed x v] by (-1)\nwait until <not <key (left arrow v) pressed?>>\n\nwhen [right arrow v] key pressed\nchange [speed x v] by (1)\nwait until <not <key (right arrow v) pressed?>>\n\nwhen flag clicked\nforever\n    if <<mouse down?> and <(mouse x) > (x position)>> then\n        change [speed x v] by (1)\n        repeat until <not <mouse down?>>\n            change [speed x v] by (0)\n        end\n        wait until <not <mouse down?>>\n    else\n        if <<mouse down?> and <(mouse x) < (x position)>> then\n            change [speed x v] by (-1)\n            repeat until <not <mouse down?>>\n                change [speed x v] by (0)\n            end\n            wait until <not <mouse down?>>\n        end\n    end\nend\n\nwhen flag clicked\nreset timer\n\n@The ground\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\ngo [backward v] (2) layers\n\nwhen flag clicked\nforever\n    set [level v] to (costume [number v])\nend\n\nwhen [n v] key pressed\nforever\n    set [your time v] to [You skipped]\nend\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (2) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.5) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen [n v] key pressed\nnext costume\n\nwhen I receive [next level v]\nnext costume\n\n@Text\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo [backward v] (1) layers\ngo to x: (0) y: (0)\n\nwhen [n v] key pressed\nnext costume\n\nwhen I receive [next level v]\nnext costume\n\n@Next Level ball\n\nwhen flag clicked\ngo to [back v] layer\nshow\ngo to x: (200) y: (0)\n\nwhen I receive [boss fight! v]\nhide\nwait until <(Boss Health) < [1]>\nshow\n\n@Left Ground\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (3.5) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.5) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen flag clicked\ngo [backward v] (3) layers\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\n\nwhen [n v] key pressed\nnext costume\n\n@Right Ground\n\nwhen flag clicked\ngo [backward v] (3) layers\nswitch costume to (costume1 v)\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\n\nwhen [n v] key pressed\nnext costume\n\n@Water\n\nwhen flag clicked\nforever\n    if <touching (water v)?> then\n        broadcast (Die! v)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [front v] layer\ngo [backward v] (2) layers\ngo to x: (0) y: (0)\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (2.5) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.5) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen [n v] key pressed\nnext costume\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\n@Lava\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        change [lives v] by (1)\n        wait (0.5) seconds\n    end\nend\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (1.75) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.5) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [backward v] (2) layers\ngo to x: (0) y: (0)\n\nwhen [n v] key pressed\nnext costume\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\n@Game Over!\n\nwhen I receive [game over! v]\nshow\nplay sound [Dun Dun Dunnn v] until done\nstop [all v]\n\nwhen flag clicked\ngo to [front v] layer\ngo [forward v] (100) layers\ngo to x: (0) y: (0)\nhide\n\n@Bounce Pads\n\nwhen [n v] key pressed\nnext costume\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (2.75) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.25) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [forward v] (2) layers\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\n@Enemies\n\nwhen I start as a clone\nif <(costume [number v]) = [1]> then\n    repeat until <<<touching (lightsaber v)?> or <(Level) = [13]>> or <touching (golf balls v)?>>\n        switch costume to (flying things that chase you v)\n        show\n        if <(x position) > ([x position v] of [player v])> then\n            point in direction (-90)\n            move (2) steps\n            wait (pick random (0.05) to (0.15)) seconds\n        else\n            point in direction (90)\n            move (2) steps\n            wait (pick random (0.05) to (0.15)) seconds\n        end\n        if <(y position) > ([y position v] of [player v])> then\n            point in direction (180)\n            move (2) steps\n            wait (pick random (0.05) to (0.15)) seconds\n        else\n            point in direction (0)\n            move (2) steps\n            wait (pick random (0.05) to (0.15)) seconds\n        end\n    end\n    hide\nelse\n    if <(Level) < [17]> then\n        if <(costume [number v]) = [2]> then\n            repeat until <<touching (lightsaber v)?> or <<(Level) = [14]> or <<(x position) < [-175]> or <touching (golf balls v)?>>>>\n                switch costume to (fireballs v)\n                show\n                change x by (-2)\n            end\n            hide\n        else\n        end\n    end\nend\n\nwhen I receive [die! v]\nif <(Level) = [12]> then\n    set size to (30) %\n    go to x: (-100) y: (63)\n    create clone of (_myself_ v)\n    go to x: (-50) y: (0)\n    create clone of (_myself_ v)\n    go to x: (0) y: (-50)\n    create clone of (_myself_ v)\n    go to x: (50) y: (40)\n    create clone of (_myself_ v)\n    go to x: (100) y: (120)\n    create clone of (_myself_ v)\n    go to x: (150) y: (150)\n    wait until <(Level) = [13]>\n    hide\nend\n\nwhen I receive [die! v]\ndelete this clone\n\nwhen I receive [boss fight! v]\nrepeat until <(Boss Health) < [1]>\n    switch costume to (flying things that chase you v)\n    go to (boss v)\n    create clone of (_myself_ v)\n    wait (2) seconds\nend\n\nwhen I start as a clone\nforever\n    if <(costume [number v]) = [1]> then\n        if <<(x position) > [225]> or <(Boss Health) < [1]>> then\n            delete this clone\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    if <touching (golf balls v)?> then\n        delete this clone\n    end\nend\n\nwhen flag clicked\nset [boss health v] to [50]\n\nwhen flag clicked\nswitch costume to (flying things that chase you v)\ngo to [front v] layer\ngo [forward v] (2) layers\nhide\nwait until <(Level) = [12]>\nset size to (30) %\ngo to x: (-100) y: (63)\ncreate clone of (_myself_ v)\ngo to x: (-50) y: (0)\ncreate clone of (_myself_ v)\ngo to x: (0) y: (-50)\ncreate clone of (_myself_ v)\ngo to x: (50) y: (40)\ncreate clone of (_myself_ v)\ngo to x: (100) y: (120)\ncreate clone of (_myself_ v)\ngo to x: (150) y: (150)\nwait until <(Level) = [13]>\nhide\nswitch costume to (fireballs v)\nrepeat until <(Level) = [14]>\n    wait (2) seconds\n    go to x: (250) y: ([y position v] of [player v])\n    create clone of (_myself_ v)\nend\n\n@Lightsaber\n\nwhen I receive [boss fight! v]\nset size to (250) %\n\nwhen [s v] key pressed\nif <(Level) > [11]> then\n    show\n    point towards (mouse-pointer v)\n    repeat (20)\n        turn right (5) degrees\n    end\n    repeat (20)\n        turn left (5) degrees\n    end\n    wait (0.25) seconds\n    hide\nelse\n    hide\nend\n\nwhen flag clicked\nhide\nforever\n    go to x: ([x position v] of [player v]) y: ([y position v] of [player v])\nend\n\nwhen flag clicked\nset size to (100) %\n\n@Left Air\n\nwhen [n v] key pressed\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [backward v] (1) layers\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\n@Right Air\n\nwhen [n v] key pressed\nnext costume\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [backward v] (1) layers\ngo to x: (0) y: (0)\n\n@Up Air\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (2.5) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.5) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen [n v] key pressed\nnext costume\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [backward v] (1) layers\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\n@Super Right Air\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <(Level) = [15]> then\n        repeat (20)\n            change [ghost v] effect by (5)\n        end\n        wait (0.25) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        wait (0.1) seconds\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo to [back v] layer\ngo [backward v] (1) layers\ngo to x: (0) y: (0)\n\nwhen I receive [next level v]\nnext costume\ngo to x: (0) y: (0)\n\nwhen [n v] key pressed\nnext costume\n\n@Golf Balls\n\nwhen I start as a clone\npoint towards (mouse-pointer v)\nshow\nrepeat until <<<<touching (the ground v)?> or <touching (_edge_ v)?>> or <touching (enemies v)?>> or <touching (boss v)?>>\n    move (5) steps\nend\nchange [golf ball clones v] by (-1)\ndelete this clone\n\nwhen flag clicked\nset [golf ball clones v] to [0]\n\nwhen flag clicked\nhide variable [golf ball clones v]\ngo to [front v] layer\ngo [backward v] (1) layers\nhide\nforever\n    set size to (2) %\n    go to x: ([x position v] of [player v]) y: ([y position v] of [player v])\nend\n\nwhen [z v] key pressed\nwait (0.375) seconds\nif <(Level) > [15]> then\n    if <(golf ball clones) < [10]> then\n        go to x: ([x position v] of [player v]) y: ([y position v] of [player v])\n        create clone of (_myself_ v)\n        change [golf ball clones v] by (1)\n        wait (0.5) seconds\n    end\nelse\n    hide\nend\n\n@Boss\n\nwhen flag clicked\nhide variable [boss health v]\nhide\n\nwhen flag clicked\nwait until <(Level) = [17]>\nbroadcast (Boss Fight! v)\n\nwhen I receive [boss fight! v]\nset [boss health v] to [50]\nshow variable [boss health v]\nshow\n\nwhen I receive [die! v]\nif <(Level) = [17]> then\n    broadcast (Boss Fight! v)\nend\n\nwhen I receive [boss fight! v]\nforever\n    if <touching (golf balls v)?> then\n        change [boss health v] by (-2)\n    end\nend\n\nwhen I receive [boss fight! v]\ngo to x: (0) y: (0)\nwait until <(Boss Health) < [1]>\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\nwhen I receive [boss fight! v]\nsay [There's no point when you know you'll lose!] for (2) seconds\nsay [I'm the bully!] for (0.8) seconds\nsay [Also, I didn't just kidnap your teddy!] for (1.5) seconds\nsay [I kidnapped your parents!] for (1) seconds\nsay [And now I'll kidnap you!] for (1) seconds\nsay [And torture you all day long.] for (1) seconds\nsay [You will not survive!  😈 ] for (1) seconds\nsay [I'm running out of things to say!] for (2) seconds\nsay [Just die so I don't have to keep talking!] for (2) seconds\n\nwhen [r v] key pressed\nif <(Level) = [17]> then\n    broadcast (Boss Fight! v)\nend\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (Die! v)\n    end\nend\n\nwhen I receive [boss fight! v]\nwait until <(Boss Health) < [25]>\nthink [This is exhausting! I need to get him to leave!] for (3) seconds\nsay [Hey! Have you seen Geometry Dash by griffpatch?] for (3.5) seconds\nsay [If not, go check it out, or at least leave this battle!] for (3) seconds\nsay [I will never give you cookies if you kill me!] for (3) seconds\nsay [You know you want cookies, right?] for (2.5) seconds\n\nwhen I receive [boss fight! v]\nrepeat until <(Boss Health) < [1]>\n    change [boss health v] by (1)\n    wait (2) seconds\nend\n\nwhen I receive [boss fight! v]\nforever\n    if <touching (lightsaber v)?> then\n        change [boss health v] by (-2)\n        wait (0.5) seconds\n    end\nend\n\nwhen I receive [boss fight! v]\nrepeat until <(Boss Health) < [25]>\n    switch costume to (costume1 v)\n    wait (3) seconds\n    point towards (player v)\n    repeat (10)\n        move (7) steps\n    end\nend\nrepeat until <(Boss Health) < [1]>\n    point in direction (90)\n    wait (0.1) seconds\n    go to x: (0) y: (0)\n    point towards (player v)\n    next costume\n    repeat until <(costume [number v]) = [1]>\n        next costume\n        wait (0.5) seconds\n    end\n    wait (1) seconds\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\nwhen flag clicked\nwait until <(Level) = [16]>\nchange [lives v] by (50)\n\nwhen flag clicked\nwait until <(Level) = [18]>\nset [boss health v] to [0]\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (0)\nshow\nwait (1) seconds\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\n\n