Platformer Adventure

Instructions: - -- --- ------- CORPORATE LADDER ------- --- -- -\nYou are the average Joe working at a big company when you doze off on the job. You wake up, only to realize you are in a dream. Your objective? platform, defeat enemies, and eliminate the final boss!\n\n---- --- -- - Shop Guide - -- --- ----\n~ Shield: Adds HP to the play in the form of a shield\n~ Stapler: Faster fire rate than the normal printer\n~ Printer: Default tool\n~ Hollow purple: Evaporates enemies (lol)\nYou can switch tools (after you unlock them) using the number keys 1-3\n\n---- --- -- - Credits - -- --- ----\n@thepugmen (me): code, art, and some sound effects\nBeta testers: my friends who helped me beta test this game and fix a ton of bugs\niSrg33 - intro music\nSynchronize - gameplay music\nG2961 - lose music\n\n#all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all #all\n#games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games\n#games #games #games #games #games #games\n#games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games #games

@Stage\n\nwhen flag clicked\nswitch backdrop to (backdrop1 v)\n\n@Cube\n\nwhen flag clicked\nhide variable [☁ timer v]\n\nwhen flag clicked\nforever\n    if <(☁ Timer) < (☁ Highscore)> then\n        set [☁ highscore v] to (☁ Timer)\n    end\nend\n\nwhen flag clicked\nset [level v] to [0]\nbroadcast (NEXT LEVEL v)\nforever\n    if <key (left arrow v) pressed?> then\n        change [x vel v] by (-1)\n    end\n    if <key (right arrow v) pressed?> then\n        change [x vel v] by (1)\n    end\n    set [x vel v] to ((x vel) * (0.9))\n    change x by (x vel)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-4)\n        change x by ((x vel) * (-1))\n        if <key (up arrow v) pressed?> then\n            if <(x vel) > [0]> then\n                set [x vel v] to [-10]\n            else\n                set [x vel v] to [10]\n            end\n            set [y vel v] to [15]\n        else\n            set [x vel v] to [0]\n        end\n    end\n    change [y vel v] by (-1)\n    change y by (y vel)\n    if <touching (level v)?> then\n        change y by ((y vel) - ((y vel) * (2)))\n        set [y vel v] to [0]\n    end\n    change y by (-1)\n    if <<touching (level v)?> and <key (up arrow v) pressed?>> then\n        set [y vel v] to [15]\n    end\n    change y by (1)\n    create clone of (_myself_ v)\n    if <(x position) > [250]> then\n        broadcast (NEXT LEVEL v) and wait\n    end\n    if <touching (spikes v)?> then\n        broadcast (restart v)\n    end\n    if <touching (bounce v)?> then\n        set [y vel v] to [19]\n    end\n    if <touching (enemy v)?> then\n        set [y vel v] to [15]\n    end\nend\n\nwhen I start as a clone\nclear graphic effects\nrepeat (10)\n    change [color v] effect by (25)\n    change [ghost v] effect by (10)\nend\ndelete this clone\n\nwhen I receive [next level v]\nbroadcast (restart v)\n\nwhen I receive [restart v]\nset [x vel v] to [0]\nset [y vel v] to [0]\ngo to x: (-220) y: (-96)\n\nwhen flag clicked\ngo to x: (-224) y: (-3)\n\nwhen flag clicked\nforever\n    if <touching (lava v)?> then\n        broadcast (restart v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [9]> then\n        broadcast (The End So  Ya v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        broadcast (restart v)\n    end\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [start v]\nwait (3) seconds\nplay sound [ParagonX9 - Chaoz Fantasy v] until done\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nforever\n    if <(x position) = [224]> then\n        broadcast (NEXT LEVEL v)\n    end\nend\n\nwhen flag clicked\ngo to x: (-220) y: (-96)\n\nwhen I receive [next level v]\nchange [level v] by (1)\n\n@Level\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nforever\n    if <(Level) = [78]> then\n        switch backdrop to (backdrop2 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [89]> then\n        switch backdrop to (backdrop3 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [100]> then\n        broadcast (you win and time c v)\n    end\nend\n\n@Lava\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [back v] layer\nswitch costume to (coustume1 v)\n\nwhen flag clicked\nforever\n    set [tide v] to [0]\n    repeat (10)\n        change [tide v] by (1)\n    end\n    repeat (20)\n        change [tide v] by (-1)\n    end\n    repeat (10)\n        change [tide v] by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    set y to (Tide)\n    switch costume to (Level)\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Spikes\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (costume 2 v)\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [next level v]\nnext costume\n\n@Light\n\nwhen I receive [start v]\nwait (3) seconds\nshow\ngo to [front v] layer\nswitch costume to (1 v)\n\nwhen flag clicked\nforever\n    wait (0.09) seconds\n    repeat until <(size) > [99]>\n        repeat (10)\n            change size by (2)\n        end\n    end\n    wait (0.09) seconds\n    repeat until <(size) < [81]>\n        repeat (10)\n            change size by (-2)\n        end\n    end\nend\n\nwhen I receive [start outro v]\nhide\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nshow\nforever\n    go to [back v] layer\n    go to (cube v)\nend\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\n@Intro\n\nwhen I start as a clone\nif <(Clone) = [Particles]> then\n    switch costume to (pick random (29) to (31))\n    set size to (pick random (50) to (150)) %\n    set [ghost v] effect to (pick random (0.) to (5.))\n    set [brightness v] effect to (pick random (-25.) to (100.))\n    go to x: (0) y: (0)\n    point in direction (pick random (-180) to (180))\n    set [x v] to (pick random (10.) to (12.))\n    set [i v] to (pick random (2.) to (9.))\n    go to [front v] layer\n    show\n    repeat until <touching (_edge_ v)?>\n        move (X) steps\n        change y by (I)\n        change [i v] by (-0.4)\n        set [x v] to ((X) * (0.95))\n    end\n    delete this clone\nend\n\ndefine Particles\nset [clone v] to [Particles]\nrepeat (50)\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nif <(Clone) = [Name]> then\n    switch costume to (name v)\n    set size to (50) %\n    clear graphic effects\n    go to [front v] layer\n    go to x: (0) y: (-100)\n    point in direction (0)\n    show\n    repeat (50)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        change y by (((0) - (y position)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (10)\n        go to [front v] layer\n        change size by (I)\n        change [i v] by (join [-] (([abs v] of (I) ) / (2)))\n        turn right (I) degrees\n    end\n    switch costume to (logo v)\n    repeat (40)\n        go to [front v] layer\n        change size by (((130) - (size)) / (8))\n        turn right (((90) - (direction)) / (8)) degrees\n    end\n    set [i v] to [-1]\n    repeat (20)\n        go to [front v] layer\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n    end\n    delete this clone\nend\n\nwhen flag clicked\nreset timer\nhide\nstart sound [Prismo - Stronger v]\nset volume to (100) %\nclear graphic effects\nset size to (100) %\npoint in direction (90)\ngo to x: (0) y: (0)\nset [clone v] to [Square]\ncreate clone of (_myself_ v)\nwait (1) seconds\nset [clone v] to [Name]\ncreate clone of (_myself_ v)\nwait (0) seconds\nrepeat (2)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (4)\n    Spiral spline explosion\n    Particles\n    Rect\n    Spiral spline explosion\nend\nCircle\nrepeat (2)\n    Spiral spline explosion\n    Rect\n    Spiral spline explosion\nend\nbroadcast (Start v)\n\nwhen I start as a clone\nif <(Clone) = [Square]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to x: (0) y: (300)\n    point in direction (0)\n    switch costume to (square v)\n    repeat (20)\n        change size by (((100) - (size)) / (5))\n        turn right (((90) - (direction)) / (5)) degrees\n        change y by (((0) - (y position)) / (5))\n    end\n    point in direction (90)\n    repeat (12)\n        next costume\n    end\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((2000) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    wait (3) seconds\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((100) - (size)) / (5))\n        switch costume to (square13 v)\n    end\n    repeat (12)\n        switch costume to ((costume [number v]) - (1))\n        change size by (-5)\n    end\n    set [i v] to [-1]\n    repeat (20)\n        change size by ((I) / (3))\n        change [i v] by (join [-] (([abs v] of (I) ) / (4)))\n        turn right ((I) / (-3)) degrees\n        change y by ((I) / (3))\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Bursts]> then\n    switch costume to (lineexplosion1 v)\n    clear graphic effects\n    go to [front v] layer\n    go [backward v] (1) layers\n    set [i v] to (pick random (1) to (3))\n    if <(I) = [1]> then\n        set [brightness v] effect to (100)\n    else\n        if <(I) = [2]> then\n            set [brightness v] effect to (25)\n        else\n            set [brightness v] effect to (-25)\n        end\n    end\n    show\n    set [i v] to [20]\n    Animate   x: [0] y: [0] size: [0] rotate: (pick random (-180) to (180)) speed: [1]\n    repeat (2)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n    end\n    repeat (10)\n        set [i v] to ((I) * (0.9))\n        move (I) steps\n        Size: [100] speed: [5]\n        change [ghost v] effect by (10)\n        next costume\n    end\n    delete this clone\nend\n\ndefine Animate   x: (x) y: (y) size: (s) rotate: (r) speed: (s)\nchange x by (((round (x)) - (round (x position))) / (s))\nchange y by (((round (y)) - (round (y position))) / (s))\nchange size by (((round (s)) - (round (size))) / (s))\nturn right (((round (r)) - (round (direction))) / (s)) degrees\n\ndefine Spiral spline explosion\nset [clone v] to [Bursts]\nrepeat (5)\n    create clone of (_myself_ v)\nend\n\ndefine Size: (s) speed: (spd)\nchange size by (((round (s)) - (round (size))) / (spd))\n\ndefine Rect\nset [clone v] to [Rect]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Rect]> then\n    clear graphic effects\n    show\n    set size to (0) %\n    go to (random position v)\n    point in direction (90)\n    switch costume to (background rect v)\n    repeat until <(round (size)) = [300]>\n        change size by (((300) - (size)) / (15))\n        change [ghost v] effect by (4)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(Clone) = [Circle]> then\n    clear graphic effects\n    set [brightness v] effect to (100)\n    go to [front v] layer\n    go [backward v] (2) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\ndefine Circle\nset [clone v] to [Circle]\ncreate clone of (_myself_ v)\nwait (0.1) seconds\nset [clone v] to [Circle 2]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nif <(Clone) = [Circle 2]> then\n    clear graphic effects\n    set [brightness v] effect to (0)\n    go to [front v] layer\n    go [backward v] (1) layers\n    show\n    set size to (0) %\n    go to x: (0) y: (0)\n    point in direction (90)\n    switch costume to (circle explosion 1 v)\n    repeat (20)\n        switch costume to (blank v)\n        change size by (((300) - (size)) / (5))\n        switch costume to (circle explosion 1 v)\n    end\n    delete this clone\nend\n\n@Enemy\n\nwhen flag clicked\ngo to x: (-224) y: (-3)\n\ndefine Clone at (x pos) (y pos)\ngo to x: (x pos) y: (y pos)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\ngo to [front v] layer\nforever\n    if <([x position v] of [cube v]) < (x position)> then\n        change [x vel v] by (-0.5)\n    end\n    if <(x position) < ([x position v] of [cube v])> then\n        change [x vel v] by (0.5)\n    end\n    set [x vel v] to ((x vel) * (0.9))\n    change x by (x vel)\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by (-4)\n        change x by ((x vel) * (-1))\n        if <(([y position v] of [cube v]) - (50)) > (y position)> then\n            if <(x vel) > [0]> then\n                set [x vel v] to [-10]\n            else\n                set [x vel v] to [10]\n            end\n            set [y vel v] to [15]\n        else\n            set [x vel v] to [0]\n        end\n    end\n    change [y vel v] by (-1)\n    change y by (y vel)\n    if <touching (level v)?> then\n        change y by ((y vel) - ((y vel) * (2)))\n        set [y vel v] to [0]\n    end\n    change y by (-1)\n    change y by (1)\n    if <touching (spikes v)?> then\n        delete this clone\n    end\n    if <touching (bounce v)?> then\n        set [y vel v] to [19]\n    end\n    if <touching (cube v)?> then\n        change y by (-1)\n        if <<touching (level v)?> and <(([y position v] of [cube v]) - (5)) > (y position)>> then\n            delete this clone\n        else\n            broadcast (restart v)\n        end\n        change y by (1)\n    end\nend\n\nwhen I receive [restart v]\nif  then\n    delete this clone\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [restart v]\nif  then\n    delete this clone\nend\nif <(Level) = [23]> then\n    Clone at [166] [-65]\nend\n\n@You win\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\nwhen I receive [you win and time c v]\nshow\ngo to [front v] layer\nstop [other scripts in sprite v]\nshow variable [timer v]\nset [timer v] to (Timer)\n\nwhen flag clicked\nhide variable [timer v]\n\nwhen I receive [start v]\nwait (3) seconds\nforever\n    wait (1) seconds\n    change [timer v] by (1)\nend\n\nwhen flag clicked\nset [timer v] to [0]\n\n@detector\n\nwhen flag clicked\nhide\nset [faved___ v] to [0]\nset [loved__ v] to [0]\nset [clone id v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [clone id v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(LOVED__) = [1]> and <(FAVED___) = [1]>>\nwait (1) seconds\nbroadcast (Message v)\nshow\ngo to [front v] layer\ngo to x: (0) y: (50)\nreset timer\nswitch costume to (pick random (1) to (4))\nset [ghost v] effect to (100)\nrepeat until <(timer) > [3.5]>\n    change y by ((y position) / (-15))\n    change [ghost v] effect by (-3)\nend\nreset timer\nrepeat until <(timer) > [3.5]>\n    change y by (((y position) - (-100)) / (-15))\n    change [ghost v] effect by (10)\nend\n\nwhen I start as a clone\nif <(clone id) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved__ v] to [0]\n    switch costume to (love v)\n    forever\n        set [love? v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [loved__ v] to [1]\n        end\n    end\nend\nif <(clone id) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (fave v)\n    set [faved___ v] to [0]\n    forever\n        set [fav v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [faved___ v] to [1]\n        end\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nhide\ngo to [back v] layer\n\n