The Quest Of Darkness | 100 Follower Special | A platformer | #Games #All

Instructions: Take a look at this project: https://scratch.mit.edu/projects/537889227/\nAfter 75+ hours of work, I present to you... The Quest Of Darkness! I worked really hard on this, and this is probably my best project so far! If you enjoyed, please love and favorite! Blue = Sad! Click the follow button on @sciencedolphin9 's profile!\nThank you so much for the 100 followers! And thank you to @----oxygen---- for doing the follow race! I still can't even believe how close it was! 3 hours difference! I originally planned to make this to try to win the follow race, but now that I did it, I decided to make this my 100 followers special! Also, happy scratch week! I got 100 followers on Wednesday, the middle of Scratch week, so it was like it was meant to be on scratch week!  Now lets get to the instructions!\n\n---How To Play---\nWASD or arrow keys to move. Avoid lava and spikes.\n\n---Lag---\nIf it is laggy, go here: turbowarp.org/531809970\n\n---Credits---\nThe music is "Mysterioso March" Kevin MacLeod (incompetech.com) (Licensed under Creative Commons:\nBy Attribution 3.0) License http://creativecommons.org/licenses/by/3.0/\nHope you enjoy the spooky music! Turn up your volume because it is really quiet!\n@Crystalkeeper7 for inspiration of the intro\n\n---Scratch Week---\nHappy Scratch Week!\n\n\n\n\n\n\n\n#All #Art #Platformer #Animation #The #Best #Games #Ever #Trending

@Stage\n\nwhen flag clicked\nSet World to # [5]\nforever\n    switch backdrop to (World #)\nend\n\nwhen I receive [game v]\nforever\n    play sound [Mysterioso March v] until done\nend\n\ndefine Set World to # (world)\nset [world # v] to (world)\n\n@player\n\ndefine Run physics (acceleration) (deacceleration) (gravity) (jump height)\nchange [sy v] by (gravity)\nchange [sx v] by (((<<key (d v) pressed?> or <key (right arrow v) pressed?>> - <<key (a v) pressed?> or <key (left arrow v) pressed?>>) * (2)) * (acceleration))\nset [sx v] to ((sx) * (deacceleration))\nif <touching (trampoline v)?> then\n    if <(Level #) = [13]> then\n        set [sy v] to [20]\n    else\n        set [sy v] to [18]\n    end\nend\nchange x by (sx)\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (-4)\n    change x by ((sx) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        set [sy v] to ((jump height) - (2))\n        if <[0] < (sx)> then\n            set [sx v] to [-13]\n        else\n            set [sx v] to [13]\n        end\n    else\n        set [sx v] to [0]\n    end\nend\nchange y by (sy)\nif <touching (level v)?> then\n    change y by ((sy) * (-1))\n    set [sy v] to [0]\nend\nchange y by (-1)\nif <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n    if <touching (level v)?> then\n        set [sy v] to [15]\n    end\nend\nchange y by (1)\n\ndefine Respawn (x) (y)\ngo to x: (x) y: (y)\nset [sy v] to [0]\nset [sx v] to [0]\n\ndefine Walk\nif <(x position) < [-220]> then\n    set x to (-220)\nend\nif <(x position) > [221]> then\n    set x to (221)\nend\nif <(<<key (d v) pressed?> or <key (right arrow v) pressed?>> - <<key (a v) pressed?> or <key (left arrow v) pressed?>>) = [1]> then\n    switch costume to (moving player v)\n    point in direction (90)\nend\nif <(<<key (a v) pressed?> or <key (left arrow v) pressed?>> - <<key (d v) pressed?> or <key (right arrow v) pressed?>>) = [1]> then\n    switch costume to (moving player v)\n    point in direction (-90)\nend\nif <(<<key (a v) pressed?> or <key (left arrow v) pressed?>> - <<key (d v) pressed?> or <key (right arrow v) pressed?>>) = [0]> then\n    switch costume to (still player v)\n    point in direction (0)\nend\n\nwhen I receive [start game loop v]\nset [in air v] to [10]\nforever\n    if <(Fix Outro Glitch) = [1]> then\n        stop [this script v]\n    end\n    Outro check\n    Run physics [1] [0.8] [-1] [14]\n    Walk\n    Next Level Check\n    Respawn Check\n    create clone of (_myself_ v)\nend\n\ndefine Respawn Check\nif <<touching (spike v)?> or <<touching (lava v)?> or <touching (saw v)?>>> then\n    stop [other scripts in sprite v]\n    repeat (20)\n        change [ghost v] effect by (5)\n    end\n    if <(Level #) = [2]> then\n        Respawn [-200] [0]\n    else\n        Respawn [-180] [0]\n    end\n    wait (0.4) seconds\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    broadcast (Start Game Loop v)\nend\n\ndefine Next Level Check\nif <(Level #) = [14]> then\n    if <touching (portal v)?> then\n        stop [other scripts in sprite v]\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        change [level # v] by (1)\n        wait (0.5) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        broadcast (Start Game Loop v)\n    end\nelse\n    if <[220] < (x position)> then\n        stop [other scripts in sprite v]\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        change [level # v] by (1)\n        if <(Level #) = [2]> then\n            Respawn [-200] [0]\n        else\n            Respawn [-180] [0]\n        end\n        wait (0.5) seconds\n        repeat (10)\n            change [ghost v] effect by (-10)\n        end\n        broadcast (Start Game Loop v)\n    end\nend\n\nwhen I start as a clone\nswitch costume to (blank v)\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (5)\nend\ndelete this clone\n\nwhen I receive [green flag v]\nset [level # v] to [1]\nRespawn [-180] [0]\ngo to [front v] layer\nset [ghost v] effect to (100)\nshow\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\nbroadcast (Start Game Loop v) and wait\n\nwhen flag clicked\nset [fix outro glitch v] to [0]\nhide\n\ndefine Outro check\nif <(Level #) = [15]> then\n    stop [other scripts in sprite v]\n    set [fix outro glitch v] to [1]\n    broadcast (Outro v)\nend\n\nwhen I receive [outro v]\nset [world # v] to [2]\nbroadcast (Create clone v)\nRespawn [-180] [0]\nbroadcast (sx outro v)\nswitch costume to (moving player v)\nforever\n    Run Outro [1] [0.8] [-1] [14]\nend\n\nwhen I receive [create clone v]\nforever\n    create clone of (_myself_ v)\nend\n\nset [level # v] to [14]\n\ndefine Run Outro (acceleration) (deacceleration) (gravity) (jump height)\nchange [sy v] by (gravity)\nset [sx v] to ((sx) * (deacceleration))\nif <touching (trampoline v)?> then\n    if <(Level #) = [13]> then\n        set [sy v] to [20]\n    else\n        set [sy v] to [18]\n    end\nend\nchange x by (sx)\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (-4)\n    change x by ((sx) * (-1))\nend\nchange y by (sy)\nif <touching (level v)?> then\n    change y by ((sy) * (-1))\n    set [sy v] to [0]\nend\nchange y by (-1)\nchange y by (1)\n\nwhen I receive [sx outro v]\nwait (8) seconds\nsay [Where am I?] for (4) seconds\nwait (8) seconds\nsay [NEVER! GIVE ME MY PARENTS BACK!] for (2) seconds\nset [sx v] to [25]\nwait (8) seconds\nsay [Nooooooooo!] for (3) seconds\nbroadcast (fin v)\n\n@Level\n\nwhen flag clicked\nhide\n\nwhen I receive [green flag v]\nshow\nforever\n    go to [front v] layer\n    switch costume to ((Level #) + (4))\nend\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nswitch costume to (level 15 v)\n\n@Lava\n\nwhen I receive [green flag v]\nshow\nforever\n    switch costume to (Level #)\n    if <<(costume [number v]) = [1]> or <(costume [number v]) = [11]>> then\n        go to x: (([cos v] of (((timer) - (3)) * (200)) ) * (50)) y: (0)\n    else\n        if <(costume [number v]) = [10]> then\n            go to x: (([cos v] of (((timer) - (3)) * (300)) ) * (20)) y: (0)\n        else\n            go to x: (0) y: ((([cos v] of (((timer) - (3)) * (200)) ) * (7)) - (10))\n        end\n    end\n    if <<<(World #) = [2]> or <<(World #) = [3]> or <(World #) = [4]>>> and <not <(STOP EVERYTHING BUT INTRO) = [1]>>> then\n        go to [back v] layer\n    end\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [outro v]\nhide\n\n@Spike\n\nwhen I receive [green flag v]\nshow\nforever\n    go to x: (0) y: (0)\n    switch costume to (Level #)\nend\n\nwhen I receive [outro v]\nhide\n\nwhen flag clicked\nhide\n\n@Text\n\nwhen I receive [green flag v]\nset [green flag v] to [1]\nforever\n    if <(Darkness text) = [1]> then\n        set [brightness v] effect to (100)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen flag clicked\nset [green flag v] to [0]\nforever\n    switch costume to (Level #)\n    if <(Fix Outro Glitch) = [1]> then\n        stop [this script v]\n    end\n    if <(World #) = [4]> then\n        set [darkness text v] to [1]\n    else\n        set [darkness text v] to [0]\n    end\n    if <(green flag) = [0]> then\n        hide\n    else\n        show\n    end\nend\n\nwhen I receive [outro v]\nwait (8) seconds\nhide\n\n@Thumbnail\n\nwhen flag clicked\nhide\n\nwhen [t v] key pressed\ngo to x: (0) y: (0)\ngo to [front v] layer\nswitch costume to (tb v)\nshow\nstop [all v]\n\n@Trampoline\n\nwhen I receive [start game loop v]\nwait (0.01) seconds\nhide\nwait until <(Clone Adder Glitch) = [0]>\nCreate Level Trampoline\nswitch costume to (costume1 v)\n\ndefine clone at x: (x) y: (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\ndefine Create Level Trampoline\nif <(Level #) = [3]> then\n    clone at x: [-170] y: [-75]\nend\nif <(Level #) = [8]> then\n    clone at x: [-100] y: [-75]\n    clone at x: [20] y: [-75]\n    clone at x: [140] y: [-75]\nend\nif <(Level #) = [13]> then\n    clone at x: [40] y: [-75]\nend\n\nwhen I receive [start game loop v]\nforever\n    set [mouse v] to (join (mouse x) (join [, ] (mouse y)))\nend\n\nwhen I start as a clone\nshow\nforever\n    if <(Clone Adder Glitch) = [1]> then\n        delete this clone\n    end\n    if <touching (player v)?> then\n        repeat (3)\n            next costume\n            wait (0.01) seconds\n        end\n        wait (0.1) seconds\n        switch costume to (costume4 v)\n        wait (0.01) seconds\n        switch costume to (costume3 v)\n        wait (0.01) seconds\n        switch costume to (costume1 v)\n    end\nend\n\nwhen I receive [start game loop v]\nset [clone adder glitch v] to [1]\nwait (0.01) seconds\nset [clone adder glitch v] to [0]\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nhide\n\n@Saw\n\nwhen I receive [start game loop v]\nhide\nwait until <(Clone Adder Glitch) = [0]>\nCreate Level Trampoline\nswitch costume to (costume1 v)\n\ndefine clone at x: (x) y: (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\ndefine Create Level Trampoline\nif <(Level #) = [4]> then\n    clone at x: [-68] y: [105]\nend\nif <(Level #) = [7]> then\n    clone at x: [-70] y: [-90]\n    clone at x: [5] y: [-90]\n    clone at x: [85] y: [-90]\nend\n\nwhen I receive [start game loop v]\nforever\n    set [mouse v] to (join (mouse x) (join [, ] (mouse y)))\nend\n\nwhen I start as a clone\nshow\nforever\n    if <(Clone Adder Glitch) = [1]> then\n        delete this clone\n    end\n    turn right (10) degrees\nend\n\nwhen I receive [start game loop v]\nset [clone adder glitch v] to [1]\nwait (0.01) seconds\nset [clone adder glitch v] to [0]\n\nwhen I receive [outro v]\nstop [other scripts in sprite v]\nhide\n\n@Intro\n\nwhen flag clicked\nshow\nset size to (100) %\nswitch costume to (flash v)\ncreate clone of (_myself_ v)\nswitch costume to (back v)\ncreate clone of (_myself_ v)\nswitch costume to (emblem v)\nset size to (100) %\ncreate clone of (_myself_ v)\nhide\ngo to x: (0) y: (0)\npoint in direction (75)\nshow\nset [counter v] to [3]\nrepeat (15)\n    turn right (1) degrees\n    change size by (Counter)\n    change [counter v] by (-1)\nend\nset [counter v] to [1]\nrepeat (12)\n    change [counter v] by (2)\n    turn right (2) degrees\n    change size by (Counter)\nend\nwait (0.3) seconds\nset [counter v] to [1]\nrepeat (14)\n    turn right (-3) degrees\n    change [counter v] by (-2)\n    change size by (Counter)\nend\nhide\n\nwhen flag clicked\nset [costume v] to [3]\nwait (1.5) seconds\nrepeat (6)\n    change [costume v] by (1)\n    create clone of (_myself_ v)\n    wait (0.6) seconds\nend\n\nwhen I start as a clone\nif <(costume [number v]) = [11]> then\n    set [ghost v] effect to (0)\n    go to [front v] layer\n    point in direction (90)\n    go to x: (0) y: (0)\n    repeat (25)\n        change [ghost v] effect by (4)\n    end\nelse\n    if <(costume [number v]) = [10]> then\n        point in direction (90)\n        go to x: (0) y: (0)\n        switch costume to (emblem v)\n        set size to (100) %\n        switch costume to (back v)\n        show\n        go to x: (0) y: (0)\n        repeat (12)\n            go to x: (0) y: (0)\n            repeat (13)\n                change x by (-10)\n            end\n        end\n        delete this clone\n    else\n        if <(timer) > [1]> then\n            point in direction (90)\n            set size to (100) %\n            go to x: (0) y: (0)\n            switch costume to (Costume)\n            show\n            set [ghost v] effect to (0)\n            repeat (100)\n                change size by (10)\n                change [ghost v] effect by (2)\n            end\n            delete this clone\n        else\n            point in direction (90)\n            go to [front v] layer\n            switch costume to (close v)\n            set [brightness v] effect to (0)\n            go to x: (0) y: (300)\n            go to [front v] layer\n            hide\n            wait (5) seconds\n            show\n            set [counter v] to [-2]\n            repeat (17)\n                change y by (Counter)\n                change [counter v] by (-4)\n            end\n            broadcast (game v)\n            switch costume to (open v)\n            wait (1) seconds\n            set [counter v] to [2]\n            repeat (17)\n                change y by (Counter)\n                change [counter v] by (4)\n            end\n            hide\n            delete this clone\n        end\n    end\nend\n\nwhen flag clicked\nwait (5) seconds\nset [counter v] to [-2]\nrepeat (14)\n    change [counter v] by (-1)\nend\n\n@Game Start\n\nwhen I receive [game - play v]\nset [hide v] to [0]\ngo to x: (0) y: (0)\nswitch costume to (quest of darkness tb v)\nshow\nwait (2) seconds\ncreate clone of (_myself_ v)\nwait until <(hide) = [1]>\nhide\nbroadcast (Green Flag v)\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\ngo to [front v] layer\nswitch costume to (triangle play v)\nset [ghost v] effect to (100)\ngo to x: (25) y: (-30)\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\nwait until <(hide) = [1]>\nhide\n\nwhen this sprite clicked\nif <(costume [number v]) = [1]> then\n    set [hide v] to [1]\nend\n\n@Setup\n\n@Sprite1\n\nwhen I receive [game v]\nwait (5) seconds\nforever\n    go to [front v] layer\nend\n\nwhen I receive [game v]\ngo to x: (0) y: (0)\nshow\nset [ghost v] effect to (100)\nswitch costume to (1 v)\nwait (.4) seconds\nrepeat (4)\n    repeat (20)\n        change [ghost v] effect by (-5)\n    end\n    wait (3) seconds\n    set [ghost v] effect to (100)\n    next costume\nend\nswitch costume to (5 v)\nset [ghost v] effect to (0)\nbroadcast (Game - Play v)\nrepeat (20)\n    change [ghost v] effect by (5)\nend\n\nwait (1) seconds\n\nwhen flag clicked\nset [world # v] to [1]\nhide\n\n@Snow\n\nwhen I start as a clone\nshow\nrepeat (6)\n    change size by (-10)\n    change [ghost v] effect by (-10)\nend\nforever\n    set size to (100) %\n    set [ghost v] effect to (40)\n    glide (pick random (1.5) to (2.5)) secs to x: ((x position) + (pick random (30) to (-30))) y: ((y position) + (pick random (-30) to (30)))\n    repeat (12)\n        change size by (10)\n        change [ghost v] effect by (5)\n    end\n    go to (random position v)\nend\n\nwhen I start as a clone\nforever\n    if <(World #) = [5]> then\n        show\n    else\n        hide\n    end\nend\n\nset [world # v] to [5]\n\nwhen I receive [green flag v]\ngo to [front v] layer\nhide\nset size to (160) %\nset [ghost v] effect to (100)\nrepeat (21)\n    create clone of (_myself_ v)\n    go to (random position v)\n    wait (0.2) seconds\nend\n\n@Portal\n\nwhen flag clicked\nhide\n\nwhen I receive [green flag v]\nforever\n    if <(Level #) = [14]> then\n        set size to (60) %\n        go to x: (160) y: (30)\n        show\n    else\n        hide\n    end\nend\n\n@Evil King\n\ndefine Run Outro (acceleration) (deacceleration) (gravity) (jump height)\nchange [sy v] by (gravity)\nset [sx v] to ((sx) * (deacceleration))\nif <touching (trampoline v)?> then\n    if <(Level #) = [13]> then\n        set [sy v] to [20]\n    else\n        set [sy v] to [18]\n    end\nend\nchange x by (sx)\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (1)\nend\nif <touching (level v)?> then\n    change y by (-4)\n    change x by ((sx) * (-1))\nend\nchange y by (sy)\nif <touching (level v)?> then\n    change y by ((sy) * (-1))\n    set [sy v] to [0]\nend\nchange y by (-1)\nchange y by (1)\n\nwhen I receive [outro v]\nshow\ngo to x: (140) y: (-68)\nwait (12) seconds\nsay [You never saw me? As you can see, you survived my attack, so I am here to destroy you once and for all!] for (8) seconds\nwait (3) seconds\nsay [Okay then. I'll let you meet you parents, NEVER. You will always be trapped, forever and ever.] for (5) seconds\nbroadcast (Drop cage v)\n\nwhen flag clicked\nhide\n\n@Sprite2\n\nwhen flag clicked\nhide\n\nwhen I receive [drop cage v]\nset [sy v] to [0]\nshow\ngo to x: (-80) y: (300)\nrepeat until <touching (level v)?>\n    change [sy v] by (-1)\n    change y by (sy)\nend\n\n@Sprite3\n\nwhen I receive [fin v]\nwait (1) seconds\ngo to [front v] layer\nset [ghost v] effect to (100)\nshow\nrepeat (50)\n    change [ghost v] effect by (-2)\nend\n\nwhen flag clicked\nhide\n\n