Seasons | A Platformer

Instructions: --- SEASONS | A PLATFORMER ---\nEntry for @x_PlatformMaker_x \n\nUse WASD, arrow keys and touch to move\n\n\nIf it's too laggy, play it here: https://turbowarp.org/594357706\n\n----  Remember to ♥ ★ and follow! ----

@Stage\n\nwhen flag clicked\nforever\n    switch backdrop to (Level)\nend\n\nwhen flag clicked\nset [season v] to [Summer]\nforever\n    if <(Level) = [1]> then\n        set [season v] to [Summer]\n    end\n    if <(Level) = [6]> then\n        set [season v] to [Autumn]\n    end\n    if <(Level) = [11]> then\n        set [season v] to [Winter]\n    end\n    if <(Level) = [16]> then\n        set [season v] to [Spring]\n    end\n    if <(Level) = [21]> then\n        set [season v] to [All]\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (thumbnail v)\nshow\n\nwhen flag clicked\nclear graphic effects\ngo to x: (0) y: (0)\nshow\ngo to [front v] layer\nwait (1.5) seconds\nchange y by (10)\nrepeat (10)\n    change [ghost v] effect by (15)\n    change y by (y position)\nend\nhide\nset [ghost v] effect to (0)\n\nwhen flag clicked\nwait (1.5) seconds\nbroadcast (Run Game v)\n\n@Screen\n\nwhen I start as a clone\ngo to [front v] layer\nshow\nif <((1) mod (2)) = [1]> then\n    go to x: (-525) y: (2)\n    repeat (30)\n        change x by ((x position) / (-10))\n    end\n    glide (Timer) secs to x: (x position) y: (y position)\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nelse\n    go to x: (525) y: (2)\n    repeat (30)\n        change x by ((x position) / (-10))\n    end\n    glide (Timer) secs to x: (x position) y: (y position)\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    delete this clone\nend\n\nwhen flag clicked\nclear graphic effects\ngo to [front v] layer\nhide\nset [1 v] to [0]\nset [2 v] to [180]\ngo to x: (-525) y: (180)\n\nwhen I receive [screen v]\ngo to [front v] layer\nset [brightness v] effect to (0)\nset [ghost v] effect to (0)\nset [timer v] to [1]\nrepeat (13)\n    change [1 v] by (1)\n    create clone of (_myself_ v)\n    wait (0.01) seconds\n    change [timer v] by (-0.05)\n    change [2 v] by (-30)\nend\nwait (1.5) seconds\nset [1 v] to [0]\nset [2 v] to [180]\nset [3 v] to [1]\n\n@Text\n\nwhen flag clicked\nshow\ngo to x: (-201) y: (166)\nforever\n    if <(Season) = [Summer]> then\n        switch costume to (summer v)\n    end\n    if <(Season) = [Autumn]> then\n        switch costume to (autumn v)\n    end\n    if <(Season) = [Winter]> then\n        switch costume to (winter v)\n    end\n    if <(Season) = [Spring]> then\n        switch costume to (spring v)\n    end\n    if <(Season) = [All]> then\n        hide\n    end\nend\n\n@Player\n\nwhen I start as a clone\nset size to (70) %\nswitch costume to (none v)\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (5)\n    change [color v] effect by (0)\n    turn right (0) degrees\nend\ndelete this clone\n\ndefine Reset\ngo to x: (-218) y: (0)\nshow\n\ndefine Next Level\ngo to x: (-218) y: (0)\nbroadcast (Screen v)\nwait (1.3) seconds\nchange [level v] by (1)\n\nwhen flag clicked\nset [level v] to [1]\nswitch costume to (center v)\nforever\n    if <not <key (any v) pressed?>> then\n        switch costume to (center v)\n    end\n    if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n        switch costume to (➡ v)\n    end\n    if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n        switch costume to (⬅ v)\n    end\n    if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n        switch costume to (⬆ v)\n    end\n    if <<key (down arrow v) pressed?> or <key (s v) pressed?>> then\n        switch costume to (⬇ v)\n    end\n    if <<<key (up arrow v) pressed?> and <key (right arrow v) pressed?>> or <<key (w v) pressed?> and <key (d v) pressed?>>> then\n        switch costume to (↗ v)\n    end\n    if <<<key (up arrow v) pressed?> and <key (left arrow v) pressed?>> or <<key (w v) pressed?> and <key (a v) pressed?>>> then\n        switch costume to (↖ v)\n    end\n    if <<<key (down arrow v) pressed?> and <key (right arrow v) pressed?>> or <<key (s v) pressed?> and <key (d v) pressed?>>> then\n        switch costume to (↘ v)\n    end\n    if <<<key (down arrow v) pressed?> and <key (left arrow v) pressed?>> or <<key (s v) pressed?> and <key (a v) pressed?>>> then\n        switch costume to (↙ v)\n    end\nend\n\ndefine Run Game\nswitch costume to (player v)\ngo to [front v] layer\nset size to (70) %\nshow\ngo to x: (-218) y: (0)\nset [level v] to [1]\nset [xv v] to [0]\nset [yv v] to [0]\nforever\n    set [x v] to (x position)\n    set [y v] to (y position)\n    if <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (x position)>>>> then\n        change [xv v] by (1)\n    end\n    if <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (x position)>>>> then\n        change [xv v] by (-1)\n    end\n    set [xv v] to ((xv) * (0.9))\n    change x by (xv)\n    if <touching (level v)?> then\n        change y by (1)\n        if <touching (level v)?> then\n            change y by (1)\n            if <touching (level v)?> then\n                change y by (1)\n                if <touching (level v)?> then\n                    change y by (1)\n                    if <touching (level v)?> then\n                        change y by (1)\n                    end\n                    change x by ((xv) * (-1))\n                    change y by (-5)\n                    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n                        if <(xv) > [0]> then\n                            set [xv v] to [-10]\n                        else\n                            set [xv v] to [10]\n                        end\n                        set [yv v] to [15]\n                    else\n                        set [xv v] to [0]\n                    end\n                end\n            end\n        end\n    end\n    change [yv v] by (-1)\n    change y by ((yv) * (1))\n    if <touching (level v)?> then\n        change y by ((yv) * (-1))\n        set [yv v] to [0]\n    end\n    change y by (-1)\n    if <touching (level v)?> then\n        if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n            change [yv v] by (12)\n        end\n    end\n    change y by (1)\n    if <(x position) > [235]> then\n        Next Level\n    end\n    if <<<touching color (#422a69)?> or <touching color (#d8c0ff)?>> and <touching (jump boost v)?>> then\n        set [yv v] to [15]\n    end\n    if <touching color (#545aff)?> then\n        set [yv v] to [20]\n    end\n    if <<touching (spikes v)?> or <(y position) < [-179]>> then\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        set [ghost v] effect to (0)\n        Reset\n    end\nend\n\nwhen I receive [run game v]\nforever\n    Run Game\nend\n\nwhen I receive [run game v]\nforever\n    wait (0.004) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I receive [screen v]\nhide\n\nwhen I receive [end of game v]\nhide\nstop [other scripts in sprite v]\nstop [this script v]\n\n@Level\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [22]> then\n        broadcast (End of Game v)\n        stop [other scripts in sprite v]\n        stop [this script v]\n    end\nend\n\n@Spikes\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nforever\n    switch costume to (Level)\nend\n\nwhen I receive [screen v]\nhide\nwait (2.3) seconds\nshow\n\nset [level v] to [20]\n\n@Jump Boost\n\nwhen flag clicked\nhide\nset size to (100) %\nswitch costume to (lvl 6 v)\nforever\n    if <<touching (player v)?> and <(Level) = [4]>> then\n        go to x: (0) y: (-109)\n        switch costume to (2 v)\n        wait (0.1) seconds\n        switch costume to (1 v)\n        wait (0.1) seconds\n    end\n    if <<touching (player v)?> and <(Level) = [6]>> then\n        go to x: (-52) y: (-80)\n        switch costume to (2 v)\n        wait (0.1) seconds\n        switch costume to (1 v)\n        wait (0.1) seconds\n    end\n    if <<touching (player v)?> and <(Level) = [9]>> then\n        go to x: (79) y: (-60)\n        switch costume to (2 v)\n        wait (0.1) seconds\n        switch costume to (1 v)\n        wait (0.1) seconds\n    end\n    if <<touching (player v)?> and <(Level) = [10]>> then\n        go to x: (79) y: (-60)\n        switch costume to (2 v)\n        wait (0.1) seconds\n        switch costume to (1 v)\n        wait (0.1) seconds\n    end\n    if <<touching (player v)?> and <(Level) = [14]>> then\n        go to x: (-62) y: (-78)\n        switch costume to (2 v)\n        wait (0.1) seconds\n        switch costume to (1 v)\n        wait (0.1) seconds\n    end\n    if <<touching (player v)?> and <(Level) = [15]>> then\n        go to x: (-116) y: (-78)\n        switch costume to (3 v)\n    end\nend\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\n\nwhen I receive [screen v]\nhide\nwait (2.3) seconds\nswitch costume to (Level)\nshow\n\nwhen flag clicked\nhide\nset size to (100) %\nswitch costume to (lvl 6 v)\nforever\n    if <(Level) = [4]> then\n        go to x: (0) y: (-109)\n    end\n    if <(Level) = [6]> then\n        go to x: (-52) y: (-80)\n    end\n    if <(Level) = [9]> then\n        go to x: (79) y: (-60)\n    end\n    if <(Level) = [10]> then\n        go to x: (79) y: (-60)\n    end\n    if <(Level) = [14]> then\n        go to x: (-62) y: (-78)\n    end\n    if <(Level) = [15]> then\n        go to x: (-116) y: (-78)\n    end\nend\n\n@Leaf\n\nwhen flag clicked\nhide\nset [ghost v] effect to (100)\nset size to (15) %\nforever\n    if <<(Level) = [6]> or <<(Level) = [7]> or <<(Level) = [8]> or <<(Level) = [9]> or <(Level) = [10]>>>>> then\n        change [ghost v] effect by (-1)\n        set size to (pick random (1) to (90)) %\n        go to (random position v)\n        create clone of (_myself_ v)\n        turn right (pick random (0) to (360)) degrees\n        wait (pick random (0.10) to (0.15)) seconds\n        next costume\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\ngo to [front v] layer\nset [ghost v] effect to (((y position) / (4)) * (-2))\nshow\nrepeat (50)\n    change [ghost v] effect by (2)\n    change x by (-0.5)\n    change y by (-0.5)\n    move (0.5) steps\n    turn left (1.5) degrees\nend\ndelete this clone\n\nwhen I receive [screen v]\nhide\nwait (2.3) seconds\nshow\n\nwhen flag clicked\nforever\n    if <(Level) = [21]> then\n        set [ghost v] effect to (10)\n        set size to (pick random (1) to (90)) %\n        go to x: (pick random (-233) to (-137)) y: (pick random (173) to (-91))\n        create clone of (_myself_ v)\n        turn right (pick random (0) to (360)) degrees\n        wait (pick random (0.35) to (0.6)) seconds\n        next costume\n    else\n        hide\n    end\nend\n\n@Clouds\n\nwhen I start as a clone\nswitch costume to (pick random (1) to (6))\nset size to (pick random (100) to (120)) %\nset [color v] effect to (pick random (0) to (0))\nset [ghost v] effect to (100)\ngo [backward v] (1) layers\nshow\nrepeat (20)\n    change [ghost v] effect by (-5)\n    change x by (1)\nend\nforever\n    repeat (500)\n        change x by (1)\n    end\n    repeat (20)\n        change x by (1)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen flag clicked\nforever\n    if <<(Level) = [16]> or <<(Level) = [17]> or <<(Level) = [18]> or <<(Level) = [19]> or <(Level) = [20]>>>>> then\n        wait (pick random (0.5) to (3)) seconds\n        go to x: (-500) y: (pick random (100) to (190))\n        create clone of (_myself_ v)\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [21]> then\n        forever\n            hide\n        end\n    end\nend\n\n@Clouds V2\n\nwhen I start as a clone\nswitch costume to (pick random (3) to (4))\nset size to (pick random (100) to (120)) %\nset [color v] effect to (pick random (0) to (0))\nset [ghost v] effect to (100)\ngo [backward v] (1) layers\nshow\nrepeat (20)\n    change [ghost v] effect by (-5)\n    change x by (1)\nend\nforever\n    repeat (500)\n        change x by (1)\n    end\n    repeat (20)\n        change x by (1)\n        change [ghost v] effect by (5)\n    end\n    delete this clone\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [21]> then\n        wait (pick random (0.5) to (1.5)) seconds\n        go to x: (-46) y: (pick random (130) to (176))\n        create clone of (_myself_ v)\n    else\n        hide\n    end\nend\n\nwhen I start as a clone\nforever\n    if <touching color (#00ffff)?> then\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        delete this clone\n    end\nend\n\n@Snow\n\nwhen flag clicked\nhide\nforever\n    if <<(Level) = [11]> or <<(Level) = [12]> or <<(Level) = [13]> or <<(Level) = [14]> or <(Level) = [15]>>>>> then\n        switch costume to (snow v)\n        wait (pick random (0) to (1)) seconds\n        go to x: (pick random (-240) to (240)) y: (180)\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I start as a clone\nclear graphic effects\nshow\nforever\n    if <(costume [number v]) = [1]> then\n        change y by (-1)\n        if <<(y position) < [-160]> or <<touching (player v)?> or <<touching (level v)?> or <<touching (spikes v)?> or <touching (jump boost v)?>>>>> then\n            repeat (10)\n                change [ghost v] effect by (10)\n            end\n            delete this clone\n        end\n    end\n    if <not <<(Level) = [11]> or <<(Level) = [12]> or <<(Level) = [13]> or <<(Level) = [14]> or <<(Level) = [15]> or <(Level) = [21]>>>>>>> then\n        delete this clone\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [21]> then\n        switch costume to (snow v)\n        wait (pick random (0) to (1)) seconds\n        go to x: (pick random (-124) to (-17)) y: (180)\n        create clone of (_myself_ v)\n    end\nend\n\n@Santa Hat\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen flag clicked\nforever\n    if <<(Level) = [16]> or <<(Level) = [17]> or <<(Level) = [18]> or <<(Level) = [19]> or <(Level) = [20]>>>>> then\n        forever\n            hide\n        end\n    end\nend\n\nwhen flag clicked\nset size to (100) %\nhide\n\nwhen I receive [winter time v]\nforever\n    go to (player v)\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [11]> then\n        broadcast (Winter Time v)\n        show\n        stop [this script v]\n    end\nend\n\nwhen I receive [screen v]\nif <<(Level) = [11]> or <<(Level) = [12]> or <<(Level) = [13]> or <<(Level) = [14]> or <<(Level) = [15]> or <(Level) = [21]>>>>>> then\n    hide\n    wait (2.3) seconds\n    go to (player v)\n    show\nelse\n    hide\nend\n\n@Thank You\n\nwhen I receive [thanks v]\nswitch costume to (thanks v)\ngo to x: (0) y: (160)\nshow\ngo to [front v] layer\nstart sound [Magic Spell v]\nrepeat (9)\n    change y by (-4)\nend\nrepeat (5)\n    change y by (3)\nend\nrepeat (5)\n    change y by (-3)\nend\nwait (1) seconds\nrepeat (10)\n    change y by (6)\nend\nhide\n\nwhen flag clicked\nhide\nset [costume v] to [0.9]\n\nwhen I receive [begin v]\nset [costume v] to [0.9]\nwait (0.1) seconds\nset [costume v] to [0.9]\nwait (0.2) seconds\nset [costume v] to [0.9]\n\nwhen I start as a clone\ngo to x: (0) y: (-50)\nshow\ngo to [front v] layer\nrepeat (12)\n    change y by (-9)\nend\nrepeat (5)\n    change y by (3)\nend\nrepeat (5)\n    change y by (-1)\nend\nforever\n    if <touching (mouse-pointer v)?> then\n        set [ghost v] effect to (50)\n        if <(costume [number v]) = [2]> then\n            if <mouse down?> then\n                set [costume v] to [2]\n                repeat (25)\n                    change y by (10)\n                end\n                hide\n                delete this clone\n            end\n        else\n            if <(costume [number v]) = [3]> then\n                if <mouse down?> then\n                    set [costume v] to [1]\n                    repeat (25)\n                        change y by (15)\n                    end\n                    hide\n                    delete this clone\n                end\n            end\n        end\n    else\n        set [ghost v] effect to (0)\n    end\n    if <(Costume) > [0.99]> then\n        repeat (25)\n            change y by (15)\n        end\n        hide\n        delete this clone\n    end\n    hide\n    delete this clone\nend\n\n@Love & Fave\n\nwhen flag clicked\nset [costume v] to [0]\nhide\nforever\n    if <not <<(Loved) = [1]> and <(Favourited) = [1]>>> then\n        wait (pick random (15) to (25)) seconds\n        go to x: (0) y: (150)\n        show\n        go to [front v] layer\n        start sound [pop v]\n        repeat (9)\n            change y by (-4)\n        end\n        repeat (5)\n            change y by (3)\n        end\n        repeat (5)\n            change y by (-1)\n        end\n        wait (2) seconds\n        repeat (15)\n            change y by (7)\n        end\n        hide\n    end\n    if <(Costume) > [0]> then\n        hide\n        stop [this script v]\n    end\nend\n\n@Detector\n\nwhen flag clicked\nhide\nset [favourited v] to [0]\nset [loved v] to [0]\nset [id v] to [0]\ncreate clone of (_myself_ v)\nwait (0.2) seconds\nset [id v] to [1]\ncreate clone of (_myself_ v)\nwait until <<(Loved) = [1]> and <(Favourited) = [1]>>\nwait (1) seconds\nbroadcast (Thanks v)\nstop [this script v]\n\nwhen I start as a clone\nif <(ID) = [0]> then\n    go to x: (-15) y: (0)\n    set [loved v] to [0]\n    switch costume to (love v)\n    forever\n        set [love v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [loved v] to [1]\n        end\n    end\nend\nif <(ID) = [1]> then\n    go to x: (0) y: (0)\n    switch costume to (favourite v)\n    set [favourited v] to [0]\n    forever\n        set [fave v] to <touching (mouse-pointer v)?>\n        if <touching (mouse-pointer v)?> then\n            set [favourited v] to [1]\n        end\n    end\nend\n\n