Dark Winter - Platformer

Instructions:                нσℓα! ωєℓ¢σмє тσ му ℓαтєѕт gαмє!\n\n[Instructions]:\n• Arrow keys/WASD to move\n• Avoid spikes & crushers\n• Collect all the coins to proceed to the next level\n\n \n\nWalkthrough (for hard levels):\n• Level 3: There is a hidden block against the edge. Jump to your left and you should land on it.\n• Level 5: Collect all the coins then pass\n\nOriginal Share Date: Dec 25, 2019.

@Stage\n\nwhen flag clicked\nforever\n    set [coins-display v] to (join (join [Coins: ] (Collected)) (join [/] (CoinsInLevel)))\nend\n\nwhen flag clicked\nforever\n    play sound [Cold - Jorge Méndez.mp3 v] until done\nend\n\n@Player\n\nwhen I start as a clone\nswitch costume to (clone v)\nrepeat (20)\n    change [ghost v] effect by (10)\n    change [brightness v] effect by (2)\n    change size by (-0.5)\nend\ndelete this clone\n\nwhen flag clicked\ngo to x: (100) y: (100)\nset [score v] to [0]\nhide variable [coins-display v]\nhide\n\nwhen I receive [play v]\nset [coinsinlevel v] to [0]\ngo to x: (-175) y: (-20)\nset [lvl v] to [1]\nset size to (65) %\nswitch costume to (costume1 v)\nshow\nset [collected v] to [0]\nset [yv v] to [0]\nset [xv v] to [0]\nshow variable [coins-display v]\nforever\n    change [yv v] by (-1)\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        switch costume to (left v)\n        change [xv v] by (-1)\n        create clone of (trail v)\n    end\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        switch costume to (right v)\n        change [xv v] by (1)\n        create clone of (trail v)\n    end\n    set [xv v] to ((Xv) * (0.9))\n    change x by (Xv)\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (1)\n    end\n    if <touching (ground v)?> then\n        change y by (-4)\n        change x by ((Xv) * (-1))\n    end\n    change y by (Yv)\n    if <touching (ground v)?> then\n        change y by ((Yv) - ((Yv) * (2)))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <touching (ground v)?>> then\n        set [yv v] to [15]\n    end\n    change y by (1)\n    if <<touching (spikes/lava v)?> or <touching (crushers v)?>> then\n        set [xv v] to [0]\n        repeat (32)\n            change x by (((-175) - (x position)) / (8))\n            change y by (((-20) - (y position)) / (8))\n        end\n    end\n    if <<(x position) > [240]> and <(Collected) = (CoinsInLevel)>> then\n        go to x: (-175) y: (-20)\n        change [lvl v] by (1)\n        set [collected v] to [0]\n        set [coinsinlevel v] to [0]\n        if <(Lvl) = [5]> then\n            set [coinsinlevel v] to [5]\n            broadcast (Coin Clones v)\n        end\n        if <(Lvl) = [7]> then\n            set [coinsinlevel v] to [3]\n            broadcast (Coin Clones v)\n        end\n    end\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <<key (right arrow v) pressed?> or <key (d v) pressed?>>> then\n        switch costume to (up-right v)\n    end\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <<key (left arrow v) pressed?> or <key (a v) pressed?>>> then\n        switch costume to (up-left v)\n    end\n    if <not <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<key (right arrow v) pressed?> or <key (d v) pressed?>>>>> then\n        switch costume to (normal v)\n    end\n    if <touching (springs v)?> then\n        set [yv v] to [18.5]\n    end\nend\n\nwhen I receive [play v]\nforever\n    create clone of (_myself_ v)\n    wait (0.09) seconds\nend\n\nwhen I receive [retry v]\ngo to x: (-175) y: (-20)\nset [xv v] to [0]\n\n@Ground\n\nwhen flag clicked\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [play v]\nshow\nforever\n    switch costume to (Lvl)\nend\n\n@Fog\n\nwhen flag clicked\nforever\n    set [ghost v] effect to (pick random (75) to (85))\n    set [brightness v] effect to (20)\n    switch costume to (pick random (1) to (2))\n    set x to (-400)\n    set y to (pick random (180) to (-110))\n    create clone of (_myself_ v)\n    wait (pick random (6) to (12)) seconds\nend\n\nwhen I start as a clone\nglide (pick random (8) to (13)) secs to x: (400) y: (y position)\ndelete this clone\n\n@Snow\n\nwhen flag clicked\nhide\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\nset [ghost v] effect to (25)\nshow\nset [yv v] to [-5]\npoint in direction (-170)\nset size to (100) %\ngo to x: (pick random (-200) to (275)) y: (200)\nset size to (100) %\nforever\n    if <(pick random (1) to (10)) = [1]> then\n        go to [front v] layer\n    else\n        go to [back v] layer\n    end\n    turn left (0.1) degrees\n    change [yv v] by (1)\n    set size to (100000) %\n    move (YV) steps\n    set size to (100) %\n    if <(y position) < [-200]> then\n        delete this clone\n    end\nend\n\n@Storyline\n\nwhen flag clicked\nset [story? v] to [0]\nshow\nswitch costume to (1 v)\nrepeat (3)\n    wait (3) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    next costume\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\nend\nwait (3) seconds\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nbroadcast (Play v)\n\nwhen [space v] key pressed\nif <(Story?) = [0]> then\n    set [story? v] to [1]\n    hide\n    stop [other scripts in sprite v]\n    broadcast (Play v)\nend\n\n@Spikes/Lava\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\nforever\n    switch costume to (Lvl)\n    go to [back v] layer\nend\n\nwhen I receive [play v]\nforever\n    set y to ([y position v] of [ground v])\nend\n\n@Coins\n\nwhen flag clicked\nset [coin id v] to [0]\nhide\n\nwhen I receive [coin clones v]\nif <(Lvl) = [5]> then\n    set [coin id v] to [0]\n    repeat (5)\n        create clone of (_myself_ v)\n        change [coin id v] by (1)\n    end\n    stop [this script v]\nend\nif <(Lvl) = [7]> then\n    set [coin id v] to [0]\n    repeat (3)\n        create clone of (_myself_ v)\n        change [coin id v] by (1)\n    end\n    stop [this script v]\nend\n\nwhen I start as a clone\nif <(Lvl) = [5]> then\n    if <(Coin ID) = [1]> then\n        go to x: (30) y: (-130)\n    end\n    if <(Coin ID) = [2]> then\n        go to x: (-50) y: (-60)\n    end\n    if <(Coin ID) = [3]> then\n        go to x: (35) y: (20)\n    end\n    if <(Coin ID) = [4]> then\n        go to x: (-30) y: (20)\n    end\n    if <(Coin ID) = [4]> then\n        go to x: (-50) y: (95)\n    end\n    if <(Coin ID) = [5]> then\n        go to x: (30) y: (160)\n    end\nend\nif <(Lvl) = [7]> then\n    if <(Coin ID) = [1]> then\n        go to x: (205) y: (-115)\n    end\n    if <(Coin ID) = [2]> then\n        go to x: (-165) y: (35)\n    end\n    if <(Coin ID) = [3]> then\n        go to x: (-165) y: (90)\n    end\nend\n\nwhen I start as a clone\nshow\nclear graphic effects\nset [color v] effect to ((1) / ())\nset [brightness v] effect to (25)\nforever\n    next costume\n    wait (0.09) seconds\n    if <touching (player v)?> then\n        start sound [collect v]\n        change [collected v] by (1)\n        change [score v] by (100)\n        repeat (32)\n            switch costume to (coin1b v)\n            change x by (((-135) - (x position)) / (8))\n            change y by (((-165) - (y position)) / (8))\n        end\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        delete this clone\n    end\nend\n\nset [lvl v] to [6]\n\n@Crushers\n\nwhen flag clicked\nset [lvl v] to [0]\ngo to x: (-20) y: (-171)\nhide\nforever\n    if <(Lvl) = [7]> then\n        show\n        repeat until <not <(Lvl) = [7]>>\n            glide (0.2) secs to x: (-20) y: (-235)\n            start sound [Jail Metal Door Slam Sound Effect \(Gaming Sound Effect\).mp3 v]\n            wait (0.5) seconds\n            glide (1.5) secs to x: (-20) y: (-171)\n            wait (0.5) seconds\n        end\n    end\n    if <(Lvl) = [8]> then\n        hide\n    end\nend\n\n@Sprite3\n\nwhen flag clicked\nswitch costume to (grunge v)\ngo to x: (0) y: (0)\nforever\n    set [ghost v] effect to (95)\n    set size to (120) %\n    show\n    go to [back v] layer\n    change x by (round (((([x position v] of [player v]) / (-5)) - (x position)) / (5)))\n    change y by (round (((([x position v] of [player v]) / (-5)) - (y position)) / (5)))\nend\n\nwhen I receive [retry v]\nwait (0.02) seconds\nclear graphic effects\nswitch costume to (white v)\nwait (0.02) seconds\nswitch costume to (grunge v)\n\n@TB\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    go to [front v] layer\n    set [ghost v] effect to (100)\n    show\nend\n\n@Retry\n\nwhen flag clicked\nhide\n\nwhen I receive [play v]\nshow\nswitch costume to (why u retry level v)\nset size to (80) %\ngo to x: (190) y: (160)\nset [turn v] to [0]\npoint in direction (90)\nforever\n    change [turn v] by (20)\n    turn right ([cos v] of (((Turn) * (.2)) * (1)) ) degrees\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (15)\n        change size by (((95) - (size)) * (0.2))\n        if <mouse down?> then\n            broadcast (Retry v)\n        end\n    else\n        change size by (((80) - (size)) * (0.2))\n        clear graphic effects\n    end\n    if <touching (player v)?> then\n        set [brightness v] effect to (-5)\n    end\nend\n\n@Boss\n\nwhen flag clicked\nforever\n    hide\nend\n\nset [boss-lives v] to [10]\nset size to (85) %\nhide\nswitch costume to (boss v)\npoint in direction (90)\nforever\n    if <(Lvl) = [9]> then\n        show\n        switch costume to (boss v)\n        go to x: (125) y: (400)\n        repeat (37)\n            change y by (((28) - (y position)) / (8))\n        end\n        switch costume to (explode-05-june\[2 v)\n        start sound [explode1 v]\n        repeat until <(costume [number v]) = [27]>\n            next costume\n        end\n        repeat until <(Boss-Lives) = [0]>\n        end\n    end\nend\n\nset [bossx v] to [0]\nset [bossy v] to [0]\n\nrepeat (10)\n    change [bossx v] by (-1)\n    change [bossy v] by (1)\nend\n\nchange y by (BossX)\nchange x by (10)\n\n