Epic, A Pixel Platformer

Instructions: GRIFFPATCH COMMENTED :OOOOOOOO\n++++++++++++++++++++++++++++++++++++++++\nYOU CAN CHANGE SKINS IN THE CODE BAR\n++++++++++++++++++++++++++++++++++++++++\nArrow keys to move and WAD also!!!\n++++++++++++++++++++++++++++++++++++++++\nJust a gamei I managed to complete within 3 hours!!!\n++++++++++++++++++++++++++++++++++++++++\n\n==========Important things to note!!! ===========\n\n- Once you play the game you cannot play it again \n  (well you can but there will  probably be your time \n  annoyingly written on the screen.)\n - Once you die YOU RESTART FROM THE START!!!\n\n___________________________________________

@Stage\n\nwhen flag clicked\nswitch costume to (spring v)\nforever\n    if <(SCENE #) = [1]> then\n        switch backdrop to (spring v)\n    end\n    if <(SCENE #) = [2]> then\n        switch backdrop to (spring v)\n    end\n    if <(SCENE #) = [3]> then\n        switch backdrop to (spring v)\n    end\n    if <(SCENE #) = [4]> then\n        switch backdrop to (spring v)\n    end\n    if <(SCENE #) = [5]> then\n        switch backdrop to (autumn v)\n    end\n    if <(SCENE #) = [6]> then\n        switch backdrop to (autumn v)\n    end\n    if <(SCENE #) = [7]> then\n        switch backdrop to (autumn v)\n    end\n    if <(SCENE #) = [8]> then\n        switch backdrop to (autumn v)\n    end\n    if <(SCENE #) = [9]> then\n        switch backdrop to (winter v)\n    end\n    if <(SCENE #) = [10]> then\n        switch backdrop to (winter v)\n    end\n    if <(SCENE #) = [11]> then\n        switch backdrop to (winter v)\n    end\n    if <(SCENE #) = [12]> then\n        switch backdrop to (summer v)\n    end\n    if <(SCENE #) = [13]> then\n        switch backdrop to (summer v)\n    end\n    if <(SCENE #) = [14]> then\n        switch backdrop to (summer v)\n    end\n    if <(SCENE #) = [15]> then\n        switch backdrop to (summer v)\n    end\n    if <(SCENE #) = [16]> then\n        switch backdrop to (summer v)\n    end\nend\n\n@Player\n\nwhen flag clicked\nset [gravity v] to [-1.5]\nset [jump force v] to [16]\nset [acceleration v] to [2]\nset [resistance v] to [0.8]\nReset & Begin Level\npoint in direction (90)\n\ndefine Move-In Steps (steps)\nchange [falling v] by (1)\nrepeat (steps)\n    set [last value v] to (x position)\n    change x by ((Speed X) / (steps))\n    Check Touching Solid\n    if <(Touching?) > [0]> then\n        set x to (Last Value)\n        set [speed x v] to [0]\n    end\n    set [last value v] to (y position)\n    change y by ((Speed Y) / (steps))\n    Check Touching Solid\n    if <(Touching?) > [0]> then\n        set y to (Last Value)\n        if <(Speed Y) < [0]> then\n            set [falling v] to [0]\n        end\n        set [speed y v] to [0]\n    end\nend\n\ndefine Check Touching Solid\nif <touching (platforms v)?> then\n    set [touching? v] to [1]\nelse\n    set [touching? v] to [0]\nend\n\nwhen I receive [tick-player v]\nControls-Y Axis\nControls-X Axis\nMove-In Steps (([abs v] of (Speed X) ) + ([abs v] of (Speed Y) ))\n\ndefine Controls-Y Axis\nif <key (up arrow v) pressed?> then\n    if <(Falling) < [3]> then\n        set [speed y v] to (JUMP FORCE)\n    end\nend\nchange [speed y v] by (GRAVITY)\n\ndefine Controls-X Axis\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    change [speed x v] by ((0) - (ACCELERATION))\n    point in direction (-90)\nend\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    change [speed x v] by (ACCELERATION)\n    point in direction (90)\nend\nset [speed x v] to ((Speed X) * (RESISTANCE))\n\ndefine Reset & Begin Level\nset [scene # v] to [1]\nset [speed x v] to [0]\nset [speed y v] to [0]\nset [falling v] to [99]\ngo to x: (-150) y: (50)\nbroadcast (Change Scene v)\nbroadcast (Game Loop v)\nswitch costume to (black v)\n\nwhen I receive [game loop v]\nforever\n    broadcast (Tick-Player v)\n    broadcast (Tick-Last v)\n    Check Touching Danger\nend\n\nwhen I receive [tick-last v]\nif <(x position) > [235]> then\n    Begin Scene # ((SCENE #) + (1)) Go to X: [-235]\nend\nif <(x position) < [-235]> then\n    Begin Scene # ((SCENE #) + (-1)) Go to X: [235]\nend\n\ndefine Begin Scene # (scene #) Go to X: (x)\nset [scene # v] to (scene #)\nset x to (x)\nbroadcast (Change Scene v)\nstop [other scripts in sprite v]\nwait (0) seconds\nFix Collision in Direction [0]\nbroadcast (Game Loop v)\n\ndefine Fix Collision in Direction (direction)\nset [temp v] to (direction)\nset [distance v] to [1]\npoint in direction (direction)\nrepeat (128)\n    Check Touching Solid\n    if <(Touching?) < [1]> then\n        point in direction (Temp)\n        stop [this script v]\n    end\n    move (Distance) steps\n    turn right (180) degrees\n    change [distance v] by (1)\nend\n\ndefine Check Touching Danger\nif <touching (danger v)?> then\n    set [scene # v] to [1]\n    go to x: (-150) y: (50)\n    broadcast (Change Scene v)\nend\nif <(y position) < [-170]> then\n    set [scene # v] to [1]\n    go to x: (-150) y: (50)\n    broadcast (Change Scene v)\nend\n\nwhen this sprite clicked\nnext costume\n\n@Platforms\n\nwhen I receive [change scene v]\nswitch costume to (join [Scene] (SCENE #))\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [back v] layer\nshow\n\n@Water\n\nwhen flag clicked\nforever\n    show\n    switch costume to (costume2 v)\n    set [ghost v] effect to (55)\n    go to x: (0) y: ((-10) - (([sin v] of (s) ) * (5)))\n    point in direction ((([cos v] of (s) ) * (5)) + (90))\n    change [s v] by (4)\nend\n\n@Danger\n\nwhen flag clicked\ngo to x: (2) y: (-2)\nshow\nswitch costume to (costume1 v)\nforever\n    go to [back v] layer\n    if <(SCENE #) = [1]> then\n        go to x: (2) y: (-2)\n        switch costume to (costume1 v)\n    end\n    if <(SCENE #) = [2]> then\n        go to x: (2) y: (-2)\n        switch costume to (costume4 v)\n    end\n    if <(SCENE #) = [3]> then\n        hide\n    end\n    if <(SCENE #) = [4]> then\n        show\n        go to x: (-7) y: (-16)\n        switch costume to (costume3 v)\n    end\n    if <(SCENE #) = [5]> then\n        show\n        switch costume to (costume5 v)\n        go to x: (-16) y: (-9)\n    end\n    if <(SCENE #) = [6]> then\n        show\n        switch costume to (costume9 v)\n        go to x: (2) y: (-2)\n    end\n    if <(SCENE #) = [7]> then\n        show\n        switch costume to (costume13 v)\n        go to x: (45) y: (-37)\n    end\n    if <(SCENE #) = [8]> then\n        show\n        switch costume to (costume6 v)\n        go to x: (262) y: (-37)\n    end\n    if <(SCENE #) = [9]> then\n        show\n        switch costume to (costume12 v)\n        go to x: (-2) y: (-2)\n    end\n    if <(SCENE #) = [10]> then\n        show\n        switch costume to (10 v)\n        go to x: (-2) y: (-2)\n    end\n    if <(SCENE #) = [11]> then\n        show\n        switch costume to (11 v)\n        go to x: (-2) y: (-2)\n    end\n    if <(SCENE #) = [12]> then\n        show\n        switch costume to (12 v)\n        go to x: (21) y: (8)\n    end\n    if <(SCENE #) = [13]> then\n        show\n        switch costume to (13 v)\n        go to x: (-2) y: (-2)\n    end\n    if <(SCENE #) = [14]> then\n        show\n        switch costume to (14 v)\n        go to x: (-19) y: (-3)\n    end\n    if <(SCENE #) = [15]> then\n        show\n        switch costume to (15 v)\n        go to x: (-2) y: (-2)\n    end\n    if <(SCENE #) = [16]> then\n        show\n        switch costume to (16 v)\n        go to x: (-2) y: (-2)\n    end\nend\n\n@WIN!!\n\nwhen I receive [win!! v]\nset [ghost v] effect to (100)\ngo to x: (0) y: (0)\nshow\nswitch costume to (blank v)\nset size to (150) %\nswitch costume to (win screen v)\nrepeat until <(size) < [101]>\n    go to [front v] layer\n    switch costume to (blank v)\n    change size by (((100) - (size)) / (7))\n    switch costume to (win screen v)\n    change [ghost v] effect by (-5)\n    set x to (((((pick random (0) to (1)) * (2)) - (1)) * ((size) - (100))) * (0.75))\n    set y to (((((pick random (0) to (1)) * (2)) - (1)) * ((size) - (100))) * (0.75))\nend\ngo to x: (0) y: (0)\ndraw (round ((TIME) - (2)))\ngo to x: (0) y: (0)\nwait (3) seconds\nset [alertsui: @id v] to [button]\ncreate clone of (_myself_ v)\n\ndefine draw (time)\nclear graphic effects\ngo to x: ((0) - (((length of (time)) + (5)) * (5.5))) y: (-60)\nset size to (80) %\nset [alertsui: @id v] to [null]\nswitch costume to (time v)\ncreate clone of (_myself_ v)\nchange x by (50)\nchange y by (3)\nset size to (27) %\nset [brightness v] effect to (20)\nset [c_! v] to [1]\nrepeat (length of (time))\n    switch costume to (join (letter (c_!) of (time)) [a])\n    set [alertsui: @id v] to [null]\n    create clone of (_myself_ v)\n    change [c_! v] by (1)\n    if <(costume [name v]) = [1a]> then\n        change x by (9)\n    else\n        change x by (12)\n    end\nend\nset size to (100) %\nswitch costume to (win screen v)\ngo to x: (0) y: (0)\nclear graphic effects\n\nwhen I start as a clone\nif <(AlertsUI: @id) = [null]> then\n    go to [front v] layer\n    show\n    set [ghost v] effect to (100)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    forever\n        go to [front v] layer\n    end\nelse\n    if <(AlertsUI: @id) = [button]> then\n        go to x: (0) y: (0)\n        switch costume to (continue00 v)\n        show\n        set size to (150) %\n        set [ghost v] effect to (100)\n        repeat until <(size) < [101]>\n            change [ghost v] effect by (-8)\n            change size by (((100) - (size)) / (5))\n            go to [front v] layer\n        end\n        forever\n            run\n        end\n    end\nend\n\nwhen I receive [hide v]\ngo to x: (1) y: (0)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\ndefine run\nif <<mouse down?> and <<(mouse x) > [-158]> and <<(mouse y) > [-139]> and <<(mouse x) < [-118]> and <(mouse y) < [-120]>>>>> then\n    broadcast (hide v)\nelse\n    if <<mouse down?> and <<(mouse x) > [-103]> and <<(mouse y) > [-139]> and <<(mouse x) < [-74]> and <(mouse y) < [-120]>>>>> then\n        switch costume to (continue01 v)\n        broadcast (localfade v)\n        stop [this script v]\n    end\nend\ngo to [front v] layer\nif <<(mouse x) > [-158]> and <<(mouse y) > [-139]> and <<(mouse x) < [-118]> and <(mouse y) < [-120]>>>> then\n    switch costume to (continue10 v)\nelse\n    if <<(mouse x) > [-103]> and <<(mouse y) > [-139]> and <<(mouse x) < [-74]> and <(mouse y) < [-120]>>>> then\n        switch costume to (continue01 v)\n    else\n        switch costume to (continue00 v)\n    end\nend\ngo to [front v] layer\n\nwhen I receive [localfade v]\nif <(join (letter (1) of (costume [name v])) (letter (2) of (costume [name v]))) = [co]> then\n    repeat (10)\n        change [ghost v] effect by (10)\n        reset timer\n    end\n    forever\n        reset timer\n    end\nend\n\nwhen flag clicked\nset [time v] to [1]\nforever\n    wait (1) seconds\n    change [time v] by (1)\nend\n\n@End\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    if <(SCENE #) = [16]> then\n        show\n        go to x: (98) y: (2)\n    end\n    if <touching (player v)?> then\n        broadcast (WIN!! v)\n        hide\n        stop [this script v]\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nhide\nforever\n    reset timer\nend\n\nwhen [timer v] > (0)\nshow\ngo to x: (0) y: (0)\nshow\nswitch costume to (blank v)\nset size to (150) %\nswitch costume to (thumbnail v)\nrepeat until <(size) < [101]>\n    go to [front v] layer\n    switch costume to (blank v)\n    change size by (((100) - (size)) / (7))\n    switch costume to (thumbnail v)\n    change [ghost v] effect by (-5)\n    set x to (((((pick random (0) to (1)) * (2)) - (1)) * ((size) - (100))) * (0.75))\n    set y to (((((pick random (0) to (1)) * (2)) - (1)) * ((size) - (100))) * (0.75))\nend\n\n