Arctic: A platformer #games # all

Instructions: https://scratch.mit.edu/projects/753808061/\nPART 4 IS OUT \n\n\nHeyyyyy \nMAH THIRD PLATFORMER LES GOOOOOOO\n\nAlso tysm for the support on the first one and the second! :DD\n\nLES GOOOOOOOOOOOOOOOOO 500+ LOVES \n\n generic (very generic)\n\n\n@Electricbulb_ loved this :O

@Stage\n\nwhen flag clicked\nforever\n    play sound [Nebula v] until done\nend\n\n@Player\n\nwhen I start as a clone\nswitch costume to (6 v)\nshow\nclear graphic effects\nset [ghost v] effect to (30)\nrepeat (3)\n    change [ghost v] effect by (10)\n    go [backward v] (1) layers\nend\ndelete this clone\n\nwhen flag clicked\nforever\n    switch costume to (1 v)\n    wait (pick random (2) to (3)) seconds\n    repeat (5)\n        next costume\n        wait (0.01) seconds\n    end\n    wait (0.5) seconds\n    repeat (5)\n        switch costume to ((costume [number v]) - (1))\n        wait (0.01) seconds\n    end\nend\n\ndefine wall sensing bug\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by (1)\nend\n\ndefine reset\nset [xvel v] to [0]\nset [yvel v] to [0]\ngo to x: (-214) y: (45)\n\nwhen I receive [next level v]\nreset\n\ndefine setup platformer\nset [health v] to [7]\nset [gravity v] to [10]\nset [jump force v] to [15]\nset [speed v] to [1.5]\nset [scene v] to [1]\n\nwhen I receive [run v]\ngo to [front v] layer\nforever\n    Show Health (health) of [7] offset y [-40]\n    if <(health) < [1]> then\n        start sound [thump soft v]\n        broadcast (__Screen Wipe v)\n        set [scene v] to [1]\n        set [health v] to [7]\n    end\n    left and right controls\n    wall sensing bug\n    wall sensing bug\n    wall sensing bug\n    wall sensing bug\n    walljumping/sensing\n    wall sensing\n    jumping\n    if <(x position) > [239]> then\n        broadcast (__Screen Wipe v)\n        broadcast (New level v) and wait\n        broadcast (Goal v)\n        change [scene v] by (1)\n    end\n    if <<touching (lava v)?> or <touching (spikes v)?>> then\n        start sound [Wood Tap v]\n        change [health v] by (-1)\n        reset\n    end\n    if <touching (bouncy v)?> then\n        start sound [jump1 v]\n        set [yvel v] to [20]\n    end\nend\n\ndefine left and right controls\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n    change [xvel v] by ((speed) - ((speed) * (2)))\n    set [direction v] to [-90]\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xvel v] by (speed)\n    set [direction v] to [90]\nend\nset [xvel v] to ((xvel) * (0.85))\nchange x by (xvel)\n\ndefine walljumping/sensing\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by (-4)\n    change x by ((xvel) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        if <(xvel) > ((gravity) + ((gravity) - ((gravity) * (2))))> then\n            set [xvel v] to (round ((gravity) - ((gravity) * (2))))\n        else\n            set [xvel v] to (round (gravity))\n        end\n        set [yvel v] to ((gravity) + ((gravity) - ((gravity) / (2))))\n    else\n        set [xvel v] to ((gravity) + ((gravity) - ((gravity) * (2))))\n    end\nend\n\ndefine wall sensing\nchange [yvel v] by ((((gravity) + ((gravity) - ((gravity) * (2)))) + (1)) * (-1))\nchange y by (yvel)\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by ((yvel) - ((yvel) * (2)))\n    set [yvel v] to ((gravity) + ((gravity) - ((gravity) * (2))))\nend\nchange y by (-1)\n\ndefine jumping\nif <<<touching (ground v)?> or <touching (movin platformer v)?>> and <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n    start sound [jump1 v]\n    set [yvel v] to (jump force)\nend\nchange y by (1)\n\nwhen I receive [run v]\nforever\n    broadcast (forever loop v)\nend\n\nwhen I receive [forever loop v]\npoint in direction (direction)\nset [x v] to (round (x position))\nset [y v] to (round (y position))\n\ndefine Show Health (health) of (max) offset y (y)\nadd (x position) to [healths v]\nadd ((y position) + (y)) to [healths v]\nadd ((health) / (max)) to [healths v]\ncreate clone of (health bar v)\n\nwhen flag clicked\nforever\n\nwhen I receive [reset v]\nreset\n\nwhen flag clicked\ngo to [front v] layer\nshow\nswitch costume to (1 v)\ndelete all of [healths v]\nset rotation style [left-right v]\nreset\nsetup platformer\nbroadcast (run v)\nbroadcast (Next Level v)\n\nwhen I receive [new sqaure v]\nforever\n    switch costume to (1 v)\nend\n\nwhen I receive [goal v]\nreset\n\nwhen flag clicked\nforever\n    go [backward v] (1) layers\nend\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\nreset\n\nwhen I receive [new level v]\nreset\n\nwhen [timer v] > (0.01)\nhide\n\n@Ground\n\nwhen flag clicked\nswitch costume to (ground 2 v)\nshow\n\nwhen I receive [new level v]\nnext costume\n\nwhen [timer v] > (0.01)\nhide\n\n@Sprite2\n\nwhen flag clicked\nforever\n    block name\nend\n\nwhen I receive [\[intro\] over v]\n\nwhen flag clicked\nhide\n\ndefine block name\ngo [backward v] (1000000000000) layers\ngo to [back v] layer\n\nwhen flag clicked\nshow\ngo to [back v] layer\nset size to (100) %\ngo to x: (230) y: (160)\nforever\n    go to [back v] layer\n    change [size change v] by (5)\n    change size by ([cos v] of ((Size change) * (1)) )\nend\n\nwhen I receive [\[part1\] end v]\nbroadcast (\[Intro\] end v)\n\n@Spikes\n\nwhen flag clicked\nswitch costume to (costume1 v)\nshow\ngo to [back v] layer\n\nwhen I receive [new level v]\nnext costume\n\nwhen [timer v] > (0.01)\nhide\n\n@transition\n\nwhen flag clicked\nhide\n\nwhen I receive [new level v]\ngo [forward v] (1) layers\ngo to [front v] layer\nset x to (500)\nshow\nrepeat (6)\n    change x by (-80)\nend\nchange x by (-15)\nwait (0.6) seconds\nrepeat (5)\n    change x by (-80)\nend\nhide\n\nset size to (100) %\n\n@Bouncy\n\nwhen flag clicked\nshow\nhide\n\nwhen flag clicked\nforever\n    if <([costume # v] of [ground v]) = [10]> then\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <([costume # v] of [ground v]) = [9]> then\n        show\n        go to [back v] layer\n    end\nend\n\nwhen [timer v] > (0.01)\nhide\n\n@Blank\n\nwhen flag clicked\nswitch costume to (costume1 v)\nshow\n\nwhen I receive [new level v]\nnext costume\n\nwhen [timer v] > (0.01)\nhide\n\n@Snow\n\nwhen I start as a clone\ngo to [front v] layer\nclear graphic effects\nset [ghost v] effect to (pick random (20) to (40))\nset size to (pick random (25) to (45)) %\ngo to x: (pick random (240) to (-240)) y: (170)\npoint in direction (90)\nshow\nglide (pick random (2) to (8)) secs to x: (pick random (240) to (-240)) y: (-180)\nhide\ndelete this clone\n\nwhen flag clicked\nhide\nforever\n    wait (0.3) seconds\n    create clone of (_myself_ v)\nend\n\n@Snow2\n\nwhen I start as a clone\ngo to [back v] layer\nclear graphic effects\nset [ghost v] effect to (pick random (40) to (50))\nset size to (pick random (25) to (45)) %\ngo to x: (pick random (100) to (-100)) y: (170)\npoint in direction (90)\nshow\nglide (pick random (2) to (8)) secs to x: (pick random (240) to (-240)) y: (-180)\nhide\ndelete this clone\n\nwhen flag clicked\nhide\nforever\n    wait (0.3) seconds\n    create clone of (_myself_ v)\nend\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    go to x: (300) y: (300)\n    reset timer\n    hide\n    go to [front v] layer\nend\n\nwhen [timer v] > (0.01)\nrepeat until <<(round (x position)) = [0]> and <(round (y position)) = [0]>>\n    show\n    change x by (((0) - (x position)) / (10))\n    change y by (((0) - (y position)) / (5))\nend\nwait (0.1) seconds\n\nforever\n    go to [back v] layer\n    change y by ([cos v] of (Cos) )\n    change [cos v] by (8)\nend\n\nforever\n    go to [back v] layer\n    change y by ([cos v] of (Cos) )\n    change [cos v] by (8)\nend\n\n