-Frost-  (A Platformer Sequel)

Instructions: New Game! https://scratch.mit.edu/projects/418518569/\n===================Info===================\nAfter one month of building and testing, Pi Person present to you: Adventurer || A cloud scrolling platformer. Double-Click the flag to make sure coins clone! Find all 50 coins and head to the portal to finish the game! :D ENJOY!\n\nIf you click the green flag but the thumbnail returns, it means the game is full... try again in 5 to 10 minutes :) Also, if you are inactive for too long, the server will kick you out!\n=============Power Up Stations=============\nI'm sorry if the game isn't as good as I promised it would be, but to make up I added power up stations:\n[Jetpack Station] Roam around the sky for 10 secs!\n[Immortality Station] Become spike-proof for 10 secs!\n[Parachute Station] Fall slower to aim better!

@Stage\n\nwhen flag clicked\nset [level v] to [1]\nforever\n    if <<(Level) = [8]> or > then\n        if <<(Level) = [8]> or > then\n            switch backdrop to (gem fields v)\n        end\n    else\n        if <<(Level) > [14]> and <(Level) < [20]>> then\n            switch backdrop to (forsaken path v)\n        else\n            switch backdrop to (caves v)\n        end\n    end\nend\n\nwhen I receive [new level v]\nset [speed y v] to [0]\nset [speed x v] to [0]\n\nwhen flag clicked\nforever\n    play sound [hollow-knight-ost-enter-hallownest-youtubemp3free v] until done\nend\n\n@Body\n\nwhen I receive [start v]\nset [speed y v] to [0]\nforever\n    if <(Health) > [0]> then\n        switch costume to (hitbox v)\n        if <<(Speed Y) < [4]> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n            change [speed y v] by (-1)\n        else\n            change [speed y v] by (-2)\n        end\n        change y by (Speed Y)\n        Touch Ground <(Speed Y) > [0]>\n        set rotation style [left-right v]\n        set [speed x v] to ((Speed X) * (0.7))\n        if <<key (a v) pressed?> or <key (left arrow v) pressed?>> then\n            change [speed x v] by (-1.5)\n        end\n        if <<key (d v) pressed?> or <key (right arrow v) pressed?>> then\n            change [speed x v] by (1.5)\n        end\n        if <(Speed X) < [-0.5]> then\n            Walk [-90] (Speed X)\n        else\n            if <(Speed X) > [0.5]> then\n                Walk [90] (Speed X)\n            else\n                set [frame v] to [0]\n            end\n        end\n        if <<<key (w v) pressed?> or <key (up arrow v) pressed?>> and <(Falling?) < [3]>> then\n            set [speed y v] to [12]\n        end\n        switch costume to (stand v)\n    end\n    broadcast (frame v)\nend\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <<touching (map v)?> or <<touching (gates v)?> and <(Gate Locked?) = [yes]>>>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(Slope) = [8]> or <not <<touching (map v)?> or <<touching (gates v)?> and <(Gate Locked?) = [yes]>>>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(Slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (Slope))\nend\nif <(speed) < [0]> then\n    change [frame v] by ((speed) / (-8))\nelse\n    change [frame v] by ((speed) / (8))\nend\n\ndefine Set Costume\nif <(Falling?) < [3]> then\n    if <(Frame) = [0]> then\n        switch costume to (stand v)\n    else\n        switch costume to ([floor v] of ((3) + ((Frame) mod (6))) )\n    end\nelse\n    if <(Speed Y) < [0]> then\n        switch costume to (fall v)\n    else\n        switch costume to (jump v)\n    end\nend\n\nwhen I receive [start v]\nset [change costume every v] to [4]\nset [frame v] to [0]\nforever\n    change [frame v] by ((1) / (Change Costume Every))\n    switch costume to ([floor v] of ((3) + ((Frame) mod (6))) )\nend\n\nwhen I receive [start v]\nshow\npoint in direction (90)\nforever\n    if <(y position) < [-180]> then\n        set [health v] to [0]\n    end\n    if <(x position) > [238]> then\n        change [level v] by (1)\n        broadcast (New Level v)\n        go to x: (-230) y: (0)\n        wait (0.1) seconds\n    end\n    if <touching (hazards v)?> then\n        broadcast (DEAD v)\n    end\n    if <(Health) < [1]> then\n        broadcast (DEAD v) and wait\n    end\nend\n\nwhen I receive [dead v]\nset [health v] to [0]\ngo to x: (-200) y: (0)\nset [brightness v] effect to (100)\nwait (0.05) seconds\nset [health v] to [3]\nrepeat (20)\n    change [brightness v] effect by (-6)\nend\n\nwhen flag clicked\nset [health v] to [3]\npoint in direction (90)\nhide\nwait (2.5) seconds\nwait until <key (any v) pressed?>\nwait (1.5) seconds\ngo to x: (-50) y: (180)\nshow\nset [speed y v] to [-10]\nswitch costume to (start fall pose v)\nrepeat until <touching (map v)?>\n    change [speed y v] by (-1)\n    change y by (Speed Y)\nend\nchange y by (2)\nset [speed y v] to [0]\nset [speed x v] to [0]\nswitch costume to (start land1 v)\nwait (0.03) seconds\nswitch costume to (start land2 v)\nwait (0.03) seconds\nswitch costume to (start land3 v)\nwait (0.03) seconds\nswitch costume to (start land4 v)\nwait (0.7) seconds\nswitch costume to (start land5 v)\nwait (0.04) seconds\nbroadcast (START v)\n\nwhen I receive [start v]\nforever\n    if <key (space v) pressed?> then\n        if <(direction) = [90]> then\n            change [speed x v] by (50)\n        else\n            change [speed x v] by (-50)\n        end\n        wait (1) seconds\n    end\nend\n\nif <(x position) < [-238]> then\n    change [level v] by (-1)\n    broadcast (New Level v)\n    go to x: (230) y: (0)\n    wait (0.1) seconds\nend\n\nwhen I receive [frame v]\nSet Costume\n\n@Head\n\nwhen I receive [frame v]\ngo to (body v)\npoint in direction ([direction v] of [body v])\n\nwhen flag clicked\nset [helm v] to [Default]\nhide\nforever\n    if <(Falling?) > [0]> then\n        if <(Speed Y) < [0]> then\n            switch costume to (join (Helm) [ 4])\n        else\n            switch costume to (join (Helm) [ 3])\n        end\n    else\n        if <<<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n            switch costume to (join (Helm) [ 2])\n        else\n            switch costume to (join (Helm) [ 1])\n        end\n    end\nend\n\nwhen I receive [dead v]\nset [brightness v] effect to (100)\nwait (0.05) seconds\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [start v]\nshow\n\n@Cloak\n\nwhen I receive [frame v]\ngo to (body v)\npoint in direction ([direction v] of [body v])\n\nwhen flag clicked\nhide\nset [cloak v] to [Default]\nforever\n    if <<<<key (a v) pressed?> or <key (left arrow v) pressed?>> or <<key (d v) pressed?> or <key (right arrow v) pressed?>>> or <<key (w v) pressed?> or <key (up arrow v) pressed?>>> then\n        switch costume to ((Cloak) + (2))\n        wait (0.05) seconds\n    else\n        switch costume to ((Cloak) + (1))\n    end\nend\n\nwhen I receive [dead v]\nset [brightness v] effect to (100)\nwait (0.05) seconds\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [start v]\nshow\n\n@Map\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset size to (100) %\nforever\n    switch costume to (Level)\n    if <(Level) = [20]> then\n        stop [all v]\n    end\nend\n\n@Weapon\n\nwhen I receive [frame v]\ngo to (body v)\nif <mouse down?> then\n    point towards (mouse-pointer v)\nelse\n    point in direction ([direction v] of [body v])\nend\n\nwhen flag clicked\nset [weapon damage v] to [-10]\nset [weapon v] to [Dirk]\nset rotation style [left-right v]\nhide\nforever\n    if <mouse down?> then\n        set rotation style [all around v]\n        switch costume to (join (Weapon) [ 3])\n        point towards (mouse-pointer v)\n        if <([direction v] of [body v]) = [90]> then\n            change [speed x v] by (4)\n        else\n            change [speed x v] by (-4)\n        end\n        wait (0.05) seconds\n        wait until <not <mouse down?>>\n        set rotation style [left-right v]\n        wait (0.01) seconds\n    else\n        if <<(Speed X) < [-4]> or <(Speed X) > [4]>> then\n            switch costume to (join (Weapon) [ 2])\n        else\n            switch costume to (join (Weapon) [ 1])\n        end\n    end\nend\n\nwhen I receive [dead v]\nset [brightness v] effect to (100)\nwait (0.05) seconds\nrepeat (10)\n    change [brightness v] effect by (-10)\nend\n\nwhen I receive [start v]\nshow\n\n@Front Fog\n\nwhen flag clicked\ngo to [front v] layer\nset [ghost v] effect to (85)\ngo to x: (0) y: (0)\ngo to [front v] layer\nshow\n\n@Back Fog\n\nwhen flag clicked\nshow\ngo [backward v] (100) layers\ngo to x: (0) y: (0)\nset [ghost v] effect to (70)\n\n@Map2\n\nwhen flag clicked\ngo [backward v] (90) layers\ngo to x: (0) y: (0)\nforever\n    switch costume to ([costume # v] of [map v])\nend\n\n@level parts\n\n@K\n\nwhen flag clicked\ngo to x: (0) y: (0)\nshow\nswitch costume to (k v)\nset [ghost v] effect to (100)\nwait (0.5) seconds\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait (2) seconds\ncreate clone of (_myself_ v)\nwait until <key (any v) pressed?>\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\nstop [this script v]\n\nwhen I start as a clone\nshow\nswitch costume to (any key v)\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nwait until <key (any v) pressed?>\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\ndelete this clone\n\n@Black\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nshow\nrepeat (10)\n    go to [front v] layer\n    change [ghost v] effect by (10)\nend\nforever\n    go to [front v] layer\nend\n\n@Flourishes\n\n@Map3 front\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo [backward v] (2) layers\nforever\n    switch costume to ([costume # v] of [map v])\nend\n\n@Passive Creatures\n\nwhen flag clicked\nset [talk creature v] to []\nhide\ngo [backward v] (70) layers\nforever\n    if <<(distance to [body v]) < [50]> and <(Talking?) = [no]>> then\n        set [brightness v] effect to (20)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <<(distance to [body v]) < [50]> and <key (e v) pressed?>> then\n        set [talking? v] to [yes]\n        wait (0.1) seconds\n        wait until <<(distance to [body v]) > [100]> or <key (e v) pressed?>>\n        set [talking? v] to [no]\n        wait (0.1) seconds\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(Talking?) = [yes]> then\n        switch costume to (join (Talk Creature) [ First])\n        repeat until <(Talking?) = [no]>\n            if <key (1 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Rumours])\n            end\n            if <key (2 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Advice])\n            end\n            if <key (3 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Help])\n            end\n        end\n    else\n        switch costume to (Talk Creature)\n    end\nend\n\nwhen flag clicked\nset [talking? v] to [no]\nforever\n    if <(Level) = [11]> then\n        go to x: (86) y: (-73)\n        switch costume to (worm v)\n        set [talk creature v] to [Worm]\n        show\n        wait until <not <(Level) = [11]>>\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [13]> then\n        go to x: (37) y: (-23)\n        switch costume to (giant worm 1 v)\n        set [talk creature v] to [Giant Worm]\n        show\n        wait until <<not <(Level) = [13]>> or <(Talking?) = [yes]>>\n        if <(Talking?) = [yes]> then\n            set [talking? v] to [no]\n            repeat (5)\n                next costume\n                wait (0.05) seconds\n            end\n            hide\n            set [talking? v] to [no]\n            stop [this script v]\n        else\n            hide\n        end\n    end\nend\n\n@Hazards\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    switch costume to ([costume # v] of [map v])\nend\n\n@Text\n\nwhen I receive [start v]\nset [talking? v] to [no]\nhide\nforever\n    if <(Talking?) = [yes]> then\n        go to [front v] layer\n        show\n        go to x: (0) y: (0)\n        switch costume to (join (Talk Creature) [ First])\n        wait until <<key (1 v) pressed?> or <<key (2 v) pressed?> or <<key (3 v) pressed?> or >>>\n        repeat until <(Talking?) = [no]>\n            if <key (1 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Rumours])\n            end\n            if <key (2 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Advice])\n            end\n            if <key (3 v) pressed?> then\n                switch costume to (join (Talk Creature) [ Help])\n            end\n            if <key (e v) pressed?> then\n                wait (0.1) seconds\n                if <key (e v) pressed?> then\n                    hide\n                end\n            end\n        end\n    else\n        if <not <(distance to [body v]) < [50]>> then\n            set [talking? v] to [no]\n            hide\n        end\n    end\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\nhide\nforever\n    if <(Level) = [13]> then\n        wait until <<not <(Level) = [13]>> or <(Talking?) = [yes]>>\n        if <(Talking?) = [yes]> then\n            wait (1) seconds\n            reset timer\n            repeat until <<(timer) > [3]> or <not <(Level) = [13]>>>\n                switch costume to (how rude v)\n                point in direction (90)\n                show\n                go to (body v)\n            end\n            hide\n            stop [this script v]\n        end\n    end\nend\n\nwhen I receive [start v]\nforever\n    if <(Level) = [1]> then\n        if <([y position v] of [body v]) > [90]> then\n            switch costume to (stop it v)\n            show\n            go to x: (-79) y: (30)\n        end\n    end\n    if <(Level) = [11]> then\n        if <(Talking?) = [no]> then\n            if <(distance to [body v]) < [50]> then\n                switch costume to (talk v)\n                go to x: (86) y: (-57)\n                show\n            end\n        end\n    end\nend\n\n@Enemies\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [4]> then\n        set [enemy v] to [Stinger]\n        repeat (7)\n            go to x: (pick random (-200) to (200)) y: (pick random (-40) to (120))\n            create clone of (_myself_ v)\n        end\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\ndelete this clone\n\nwhen I start as a clone\nif <(Enemy) = [Stinger]> then\n    set [enemy health v] to [20]\n    set rotation style [left-right v]\n    show\n    forever\n        if <(distance to [body v]) < [200]> then\n            switch costume to (stinger fly 1 v)\n            wait (0.07) seconds\n            switch costume to (stinger fly 2 v)\n            wait (0.07) seconds\n            if <<touching (body v)?> and <(distance to [body v]) < [20]>> then\n                switch costume to (stinger attack v)\n                change [health v] by (-1)\n                if <([direction v] of [body v]) = [90]> then\n                    change [speed x v] by (-20)\n                else\n                    change [speed x v] by (20)\n                end\n                wait (0.1) seconds\n                switch costume to (stinger fly 1 v)\n                wait (0.07) seconds\n            end\n        else\n            switch costume to (stinger fly 1 v)\n            wait (0.07) seconds\n            switch costume to (stinger fly 2 v)\n            wait (0.07) seconds\n        end\n    end\nend\nif <(Enemy) = [Forsaken Guard]> then\n    set [enemy health v] to [60]\n    set rotation style [left-right v]\n    show\nend\n\nwhen I start as a clone\nforever\n    if <(Enemy Health) < [1]> then\n        if <(Enemy) = [Forsaken Guard]> then\n            stop [other scripts in sprite v]\n            quick ground\n            switch costume to (forsaken guard die 1 v)\n            wait (0.1) seconds\n            switch costume to (forsaken guard die 2 v)\n            clear graphic effects\n            stop [this script v]\n        else\n            delete this clone\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    if <<mouse down?> and <touching (weapon v)?>> then\n        change [enemy health v] by (Weapon Damage)\n        set [brightness v] effect to (50)\n        if <(Enemy) = [Forsaken Guard]> then\n            change [enemy speed why v] by (5)\n        end\n        repeat (10)\n            change [brightness v] effect by (-5)\n            move (-1) steps\n        end\n        wait until <not <touching (weapon v)?>>\n    end\nend\n\nwhen I start as a clone\nif <(Enemy) = [Stinger]> then\n    forever\n        if <(distance to [body v]) < [200]> then\n            point towards (body v)\n            move (pick random (2.5) to (3.5)) steps\n        else\n            glide (3) secs to x: (pick random (-200) to (200)) y: (pick random (-120) to (120))\n        end\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [17]> then\n        set [enemy v] to [Forsaken Guard]\n        repeat (1)\n            go to x: (19) y: (-54)\n            create clone of (_myself_ v)\n        end\n        stop [this script v]\n    end\nend\n\nwhen I start as a clone\nif  then\n    set rotation style [left-right v]\n    forever\n        change [enemy speed why v] by (-1)\n        change y by (enemy speed WHY)\n        touch ground yeah <(enemy speed WHY) > [0]>\n    end\nend\n\ndefine touch ground yeah <up?>\nchange [enemy falling? v] by (1)\nrepeat until <not <touching (map v)?>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [enemy falling? v] to [0]\n    end\n    set [enemy speed why v] to [0]\nend\n\ndefine clone walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [clone slope v] to [0]\nrepeat until <<(clone slope) = [8]> or <not <touching (map v)?>>>\n    change y by (1)\n    change [clone slope v] by (1)\nend\nif <(clone slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (clone slope))\nend\n\nwhen I start as a clone\nif <(Enemy) = [Forsaken Guard]> then\n    switch costume to (forsaken guard v)\n    wait (pick random (0.4) to (1)) seconds\n    forever\n        if <(distance to [body v]) < [30]> then\n            switch costume to (pick random (6) to (7))\n            if <touching (body v)?> then\n                change [health v] by (-1)\n                if <([direction v] of [body v]) = [90]> then\n                    change [speed x v] by (-25)\n                else\n                    change [speed x v] by (25)\n                end\n            end\n            wait (0.2) seconds\n            switch costume to (forsaken guard v)\n            wait (0.2) seconds\n        else\n            switch costume to (forsaken guard walk v)\n            wait (0.1) seconds\n            switch costume to (forsaken guard v)\n            wait (0.1) seconds\n        end\n    end\nend\n\nwhen I start as a clone\nif <(Enemy) = [Forsaken Guard]> then\n    forever\n        if <(distance to [body v]) > [30]> then\n            if <([x position v] of [body v]) > (x position)> then\n                clone walk [90] [3]\n            else\n                clone walk [-90] [-3]\n            end\n        end\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(clone slope) = [8]> then\n        repeat until <not <(clone slope) = [8]>>\n            change [enemy speed why v] by (12)\n            wait (1) seconds\n        end\n    end\nend\n\nwhen I receive [dead v]\nif <not <(Enemy Health) < [1]>> then\n    if <(Level) = [4]> then\n        go to x: (pick random (-200) to (200)) y: (pick random (-40) to (120))\n    end\n    if <(Level) = [17]> then\n        go to x: (33) y: (-46)\n    end\n    if <(Level) = [18]> then\n        go to x: (100) y: (-46)\n    end\nend\n\nwhen flag clicked\ndelete this clone\n\ndefine quick ground\nrepeat until <touching (map v)?>\n    change y by (-1)\nend\n\nwhen I receive [new level v]\nif <(Level) = [18]> then\n    set [enemy v] to [Forsaken Guard]\n    repeat (1)\n        go to x: (141) y: (pick random (-48) to (-54))\n        create clone of (_myself_ v)\n    end\n    stop [this script v]\nend\n\n@Health\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\ngo to [front v] layer\nforever\n    switch costume to ((Health) + (1))\nend\n\n@Gates\n\nwhen I receive [new level v]\nif  then\n    if <(Level) = [19]> then\n        show\n        go to x: (179) y: (-51)\n    end\nelse\n    hide\nend\n\nwhen flag clicked\nhide\nforever\n    if <(Gate Locked?) = [no]> then\n        switch costume to (2 v)\n    else\n        switch costume to (1 v)\n    end\nend\n\n@Keys\n\nwhen flag clicked\nhide\n\nwhen I receive [new level v]\nif <(Level) = [19]> then\n    set [gate locked? v] to [yes]\n    go to x: (-60) y: (104)\n    show\n    wait until <<touching (body v)?> or <not <(Level) = [19]>>>\n    if <touching (body v)?> then\n        set [gate locked? v] to [no]\n        hide\n    else\n        hide\n    end\nend\n\n@cover\n\nwhen flag clicked\nhide\n\nshow\ngo to [front v] layer\ngo to x: (0) y: (0)\n\n