[WIP] Deep Freeze || A Platformer

Instructions: PLEASE READ EVERYTHING BELOW!!!!!!!!!!!!!!!!!!!!!!!!\nThis is a WIP. That's why there are only 8 levels. Finished version will have 20 levels and 2 bosses.\n\nNote: I probably won't be working on this much if at all, especially with school starting.\n\nAll levels 100% possible on PC, all except 5 on mobile. (i beat every level except 5 ON A PC but by DRAGGING THE MOUSE) Skip button to skip, if it's too hard.\n\n~~PC Controls~~\nBasic Movement: Left and right arrow keys to move left and right, up arrow to jump.\nSwimming: Left and right arrows to move left and right, up and down to go, well, up and down.\nSwitches: Press space when touching a switch to flip it and turn water into ice or vice versa.\n\n~~Mobile Controls~~\nTap above/below/to the side of the player to go in that direction. Tap switches when touching them to flip them.\n\n~~Other Notes~~\n-Avoid spikes\n-Don't fall into the void\n-Sometimes, when swimming, you can't fall into the void because of the "ocean floor"\n-Ice is slippery\n-Sometimes you have a choice of whether to flip the switch or not\n-Sometimes there are extra challenges! Can you beat them? ;)\n\nI worked really hard on this, so make sure to leave a heart or star!

@Stage\n\nwhen I receive [start v]\nswitch backdrop to (backdrop1 v)\nforever\n    play sound [Shiverburn Galaxy - Super Mario Galaxy 2 v] until done\nend\n\nwhen flag clicked\nswitch backdrop to (intro v)\n\n@Intro\n\nwhen flag clicked\nclear graphic effects\npoint in direction (90)\nhide\nswitch costume to (jetpack guy v)\ncreate clone of (_myself_ v)\nswitch costume to (square root v)\ncreate clone of (_myself_ v)\nswitch costume to (username v)\ncreate clone of (_myself_ v)\nswitch costume to (bg v)\nshow\ngo to [back v] layer\ngo to x: (0) y: (0)\n\nwhen I start as a clone\nif <(costume [number v]) = [1]> then\n    set [introjetpackguyglide v] to [0]\n    show\n    go to x: (-150) y: (-250)\n    repeat (36)\n        change [introjetpackguyglide v] by (5)\n        change y by ((10) * ([sin v] of (IntroJetpackGuyGlide) ))\n    end\n    set [introjetpackguyglide v] to [0]\n    wait (0.5) seconds\n    repeat (216)\n        change [introjetpackguyglide v] by (5)\n        change y by ([sin v] of (IntroJetpackGuyGlide) )\n    end\n    set [introjetpackguyglide v] to [180]\n    repeat (36)\n        change [introjetpackguyglide v] by (-5)\n        change y by ((12) * ([sin v] of (IntroJetpackGuyGlide) ))\n        change [ghost v] effect by (3)\n    end\n    delete this clone\nend\nif <(costume [number v]) = [2]> then\n    go to x: (256) y: (0)\n    wait (1.5) seconds\n    set [introsquarerootglide v] to [0]\n    show\n    repeat (36)\n        change [introsquarerootglide v] by (5)\n        change x by ((-10) * ([sin v] of (IntroSquareRootGlide) ))\n    end\n    set [introsquarerootrotation v] to [0]\n    repeat (216)\n        change [introsquarerootrotation v] by (10)\n        turn right ([cos v] of (IntroSquareRootRotation) ) degrees\n    end\n    delete this clone\nend\nif <(costume [number v]) = [3]> then\n    go to x: (0) y: (-182)\n    wait (5) seconds\n    set [introusernameglide v] to [0]\n    show\n    repeat (36)\n        change [introusernameglide v] by (5)\n        change y by ((2.5) * ([sin v] of (IntroUsernameGlide) ))\n    end\n    set [introusernamerotation v] to [0]\n    repeat (108)\n        change [introusernamerotation v] by (10)\n        turn right ((0.7) * ([cos v] of (IntroUsernameRotation) )) degrees\n    end\n    delete this clone\nend\n\nwhen flag clicked\nplay sound [Starship Mario, Launch! - Super Mario Galaxy 2 v] until done\nbroadcast (Start v)\nhide\n\n@Thumbnail\n\nwhen flag clicked\nset [ghost v] effect to (100)\n\ngo to x: (0) y: (0)\ngo to [front v] layer\nclear graphic effects\n\n@player\n\nwhen I receive [start v]\nset [can do stuff? v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nset [surface last touched v] to []\npoint in direction (90)\ngo to x: (-200) y: (-50)\nset [level v] to [1]\nset rotation style [left-right v]\nshow\nforever\n    if <(Can do stuff?) = [1]> then\n        if <touching (water v)?> then\n            Water Stuff\n        else\n            Non-Water Stuff\n        end\n        if <(x position) > [235]> then\n            broadcast (Reset v)\n            change [level v] by (1)\n        end\n        if <<touching (dangerous stuff v)?> or <(y position) < [-180]>> then\n            broadcast (Reset v)\n        end\n    end\nend\n\nwhen flag clicked\nhide\n\ndefine Non-Water Stuff\nchange [yv v] by (-1)\nif <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xv v] by (2)\n    point in direction (90)\nend\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [xv v] by (-2)\n    point in direction (-90)\nend\nif <(Surface last touched) = [ice]> then\n    set [xv v] to ((Xv) * (0.92))\nelse\n    set [xv v] to ((Xv) * (0.8))\nend\nchange x by (Xv)\nif <<touching (ground v)?> or <touching (ice v)?>> then\n    Slope Detect\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (-6)\n        X Collision\n        if <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n            set [yv v] to [12]\n            if <(Xv) > [0]> then\n                set [xv v] to [-10]\n            else\n                set [xv v] to [10]\n            end\n        else\n            set [xv v] to [0]\n        end\n    end\nend\nchange y by (Yv)\nif <<touching (ground v)?> or <touching (ice v)?>> then\n    Y Collision\n    if <<<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> and <(Yv) < [0]>> then\n        set [yv v] to [15]\n    else\n        set [yv v] to [0]\n    end\nend\n\ndefine Slope Detect\nrepeat (6)\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (1)\n    end\nend\n\ndefine Y Collision\nrepeat until <not <<touching (ground v)?> or <touching (ice v)?>>>\n    if <(Yv) > [0]> then\n        change y by (-1)\n    else\n        change y by (1)\n    end\nend\n\ndefine X Collision\nrepeat until <not <<touching (ground v)?> or <touching (ice v)?>>>\n    if <(Xv) > [0]> then\n        change x by (-1)\n    else\n        change x by (1)\n    end\nend\n\nwhen I receive [start v]\nforever\n    change y by (-1)\n    if <touching (ground v)?> then\n        set [surface last touched v] to [ground]\n    end\n    if <touching (ice v)?> then\n        set [surface last touched v] to [ice]\n    end\n    change y by (1)\nend\n\nwhen I receive [reset v]\nset [can do stuff? v] to [0]\nwait (0.1) seconds\nset [can do stuff? v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nset [surface last touched v] to []\npoint in direction (90)\ngo to x: (-200) y: (-50)\n\ndefine Water Stuff\nif <(Yv) > [-2.5]> then\n    change [yv v] by (-0.5)\nend\nif <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>> then\n    if <(Yv) < [3.5]> then\n        change [yv v] by (1)\n    else\n        change [yv v] by (0.7)\n    end\nend\nif <<key (down arrow v) pressed?> or <<mouse down?> and <(y position) > (mouse y)>>> then\n    if <(Yv) > [-4]> then\n        change [yv v] by (-1.2)\n    else\n        change [yv v] by (-0.8)\n    end\nend\nif <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xv v] by (2)\n    point in direction (90)\nend\nif <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>> then\n    change [xv v] by (-2)\n    point in direction (-90)\nend\nset [xv v] to ((Xv) * (0.8))\nchange x by (Xv)\nif <<touching (ground v)?> or <touching (ice v)?>> then\n    Slope Detect\n    if <<touching (ground v)?> or <touching (ice v)?>> then\n        change y by (-6)\n        X Collision\n        set [xv v] to [0]\n    end\nend\nchange y by (Yv)\nif <<touching (ground v)?> or <touching (ice v)?>> then\n    Y Collision\n    set [yv v] to [0]\nend\n\n@Ground\n\nwhen flag clicked\nhide\ndelete all of [levels with ground v]\nadd [1] to [levels with ground v]\nadd [2] to [levels with ground v]\nadd [3] to [levels with ground v]\nadd [4] to [levels with ground v]\nadd [6] to [levels with ground v]\nadd [7] to [levels with ground v]\nadd [8] to [levels with ground v]\nadd [9] to [levels with ground v]\n\nwhen I receive [start v]\nforever\n    go to x: (0) y: (0)\n    hide\n    if <[levels with ground v] contains (Level)?> then\n        show\n        switch costume to (join [Lvl] (Level))\n    end\nend\n\n@Ice\n\nwhen I receive [start v]\nforever\n    go to x: (0) y: (0)\n    hide\n    if <<<[levels that start with ice v] contains (Level)?> or <[levels with switches v] contains (Level)?>> and <(frozen?) = [1]>> then\n        show\n        switch costume to (join [Lvl] (Level))\n    end\nend\n\nwhen flag clicked\nhide\ndelete all of [levels that start with ice v]\nadd [1] to [levels that start with ice v]\nadd [4] to [levels that start with ice v]\nadd [8] to [levels that start with ice v]\nadd [9] to [levels that start with ice v]\n\n@Water\n\nwhen I receive [start v]\nforever\n    go to x: (0) y: (0)\n    hide\n    if <<<[levels that start with water v] contains (Level)?> or <[levels with switches v] contains (Level)?>> and <(frozen?) = [0]>> then\n        show\n        switch costume to (join [Lvl] (Level))\n    end\nend\n\nwhen flag clicked\nhide\ndelete all of [levels that start with water v]\nadd [2] to [levels that start with water v]\nadd [3] to [levels that start with water v]\nadd [5] to [levels that start with water v]\nadd [6] to [levels that start with water v]\nadd [7] to [levels that start with water v]\n\ngo to [back v] layer\n\n@Switch\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nforever\n    hide\n    if <[levels with switches v] contains (Level)?> then\n        show\n        if <(Level) = [1]> then\n            go to x: (58) y: (-43)\n        end\n        if <(Level) = [2]> then\n            go to x: (-195) y: (135)\n        end\n        if <(Level) = [3]> then\n            go to x: (-82) y: (90)\n        end\n        if <(Level) = [4]> then\n            go to x: (-20) y: (170)\n        end\n        if <(Level) = [6]> then\n            go to x: (-20) y: (-20)\n        end\n        if <(Level) = [7]> then\n            go to x: (-210) y: (150)\n        end\n        if <(Level) = [8]> then\n            go to x: (-100) y: (170)\n        end\n        if <(Level) = [9]> then\n            go to x: (0) y: (-60)\n        end\n    end\n    if <<touching (player v)?> and <<key (space v) pressed?> or <<mouse down?> and <touching (mouse-pointer v)?>>>> then\n        next costume\n        if <(frozen?) = [1]> then\n            set [frozen? v] to [0]\n        else\n            set [frozen? v] to [1]\n        end\n    end\n    wait until <not <<key (space v) pressed?> or <<mouse down?> and <touching (mouse-pointer v)?>>>>\nend\n\nwhen flag clicked\ndelete all of [levels with switches v]\nadd [1] to [levels with switches v]\nadd [2] to [levels with switches v]\nadd [3] to [levels with switches v]\nadd [4] to [levels with switches v]\nadd [6] to [levels with switches v]\nadd [7] to [levels with switches v]\nadd [8] to [levels with switches v]\nadd [9] to [levels with switches v]\n\nwhen I receive [reset v]\nif <[levels that start with ice v] contains (Level)?> then\n    switch costume to (frozen v)\n    set [frozen? v] to [1]\nelse\n    switch costume to (unfrozen v)\n    set [frozen? v] to [0]\nend\n\nwhen I receive [start v]\nswitch costume to (frozen v)\nset [frozen? v] to [1]\n\n@Dangerous Stuff\n\nwhen I receive [start v]\nforever\n    hide\n    if <[levels with hazards v] contains (Level)?> then\n        show\n        switch costume to (join [Lvl] (Level))\n    end\nend\n\nwhen flag clicked\nhide\ndelete all of [levels with hazards v]\nadd [2] to [levels with hazards v]\nadd [5] to [levels with hazards v]\nadd [6] to [levels with hazards v]\nadd [7] to [levels with hazards v]\nadd [8] to [levels with hazards v]\n\n@Adaptive Text\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nshow\nforever\n    if <(frozen?) = [1]> then\n        switch costume to (join [Lvl] (join (Level) [ice]))\n    else\n        switch costume to (join [Lvl] (join (Level) [water]))\n    end\nend\n\n@skip\n\nwhen flag clicked\nhide\n\nwhen I receive [start v]\nshow\ngo to x: (184) y: (-147)\nforever\n    if <touching (mouse-pointer v)?> then\n        switch costume to (costume2 v)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\nwhen this sprite clicked\nif <(Level) < [9]> then\n    broadcast (Reset v)\n    change [level v] by (1)\nend\n\n@Boss\n\n@Boss Button\n\n@Projectiles\n\n