0% Light || Platformer

Instructions: Welcome to my new game Bummerland! Its a country side theme platformer based on AJR's Bummerland Music Video! It also reminds me of when I was in Manitoulin Island. It is right above Lake Huron.  See google earth or google maps for details are to see for yourself. (Tell me in the comments if you have been to Manitoulin island!)\n\n⚠️ NOTE: This will be the last platformer I will be making in a while. I will make more original games for a bit. (If you saw on What Im working on).\n\nI made this for fun and It is an entry of @Super_Scratcher07 's 1k Game Contest and @SuperCube_123 's 1k Game Contest!\n\n-------------------INSTRUCTIONS---------------------------\n\nUse arrow keys of WASD to move.\n➶ Moving Enemies\n➶ Moving Platforms\n➶ Trampoline Drums\n➶ Scenery Setup\n➶ Wheat blowing in the wind.\n\nALL LEVELS ARE POSSIBLE\n\n------------------------CREDITS------------------------------\n\n@InfinitelyEndless for some of the player engine- 15% code\n@Splo for the Car - 5% art\n@Ziyu3 for the Intro - 10% code\n\nThe rest by me!\n\nMusic:\n - AJR - Bummerland\n - AJR - The Entertainments Here\n\n#games #games #games #games #games #games #art 

@Stage\n\nwhen flag clicked\nif <<(current [hour v]) < [7]> or <(current [hour v]) > [19]>> then\n    repeat (50)\n        change [brightness v] effect by (-2)\n    end\nend\n\n@the laggiest pen platformer on scratch\n\nwhen flag clicked\nset [level v] to [1]\nreset\ngenerate terrain\nforever\n    erase all\n    do stuff\nend\n\ndefine render guy\nset [ram1 v] to ((X) - (item (1) of [player data v]))\nset [ram2 v] to ((Y) - (item (2) of [player data v]))\nset pen color to (#ffab19)\ngo to x: ((RAM1) - (10)) y: ((RAM2) + (10))\nset pen size to (20)\npen down\ngo to x: ((RAM1) - (10)) y: ((RAM2) - (10))\ngo to x: ((RAM1) + (10)) y: ((RAM2) - (10))\ngo to x: ((RAM1) + (10)) y: ((RAM2) + (10))\ngo to x: ((RAM1) - (10)) y: ((RAM2) + (10))\npen up\nset pen color to (#000000)\ngo to x: ((RAM1) - (20)) y: ((RAM2) + (20))\nset pen size to (4)\npen down\ngo to x: ((RAM1) - (20)) y: ((RAM2) - (20))\ngo to x: ((RAM1) + (20)) y: ((RAM2) - (20))\ngo to x: ((RAM1) + (20)) y: ((RAM2) + (20))\ngo to x: ((RAM1) - (20)) y: ((RAM2) + (20))\npen up\ngo to x: ((RAM1) - ((10) - ((item (3) of [player data v]) / (2)))) y: ((RAM2) - ((7) - ((item (4) of [player data v]) / (2))))\nset pen color to (#ffffff)\nset pen size to (15)\npen down\ngo to x: ((RAM1) - ((-10) - ((item (3) of [player data v]) / (2)))) y: ((RAM2) - ((7) - ((item (4) of [player data v]) / (2))))\npen up\ngo to x: ((RAM1) - (-15)) y: ((RAM2) - ((-15) - ((item (4) of [player data v]) / (2))))\nset pen color to (#f19100)\nset pen size to (5)\npen down\ngo to x: ((RAM1) - (((item (3) of [player data v]) / (2)) - (10))) y: ((RAM2) - ((-25) - ((item (4) of [player data v]) / (2))))\ngo to x: ((RAM1) - (-5)) y: ((RAM2) - ((-15) - ((item (4) of [player data v]) / (2))))\npen up\ngo to x: ((RAM1) - (15)) y: ((RAM2) - ((-15) - ((item (4) of [player data v]) / (2))))\npen down\ngo to x: ((RAM1) - (((item (3) of [player data v]) / (2)) - (-10))) y: ((RAM2) - ((-25) - ((item (4) of [player data v]) / (2))))\ngo to x: ((RAM1) - (5)) y: ((RAM2) - ((-15) - ((item (4) of [player data v]) / (2))))\npen up\ngo to x: ((RAM1) - ((7) - ((item (3) of [player data v]) / (2)))) y: ((RAM2) - ((-5) - ((item (4) of [player data v]) / (2))))\nset pen color to (#000000)\nset pen size to (10)\npen down\npen up\ngo to x: ((RAM1) - ((-7) - ((item (3) of [player data v]) / (2)))) y: ((RAM2) - ((-5) - ((item (4) of [player data v]) / (2))))\npen down\npen up\n\ndefine physics (player/cam)\nif <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n    replace item (3) of [player data v] with ((item (3) of [player data v]) - (-1))\nend\nif <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n    replace item (3) of [player data v] with ((item (3) of [player data v]) - (1))\nend\nreplace item (3) of [player data v] with ((item (3) of [player data v]) * (0.9))\nreplace item (1) of [player data v] with ((item (1) of [player data v]) - (item (3) of [player data v]))\ndetect collision\nif <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n    replace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\n    detect collision\n    if <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n        replace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\n        detect collision\n        if <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n            replace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\n            detect collision\n            if <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n                replace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\n                detect collision\n                if <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n                    replace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\n                    detect collision\n                    if <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n                        replace item (1) of [player data v] with ((item (1) of [player data v]) + (item (3) of [player data v]))\n                        replace item (2) of [player data v] with ((item (2) of [player data v]) - (-5))\n                        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                            if <(item (3) of [player data v]) > [0]> then\n                                replace item (3) of [player data v] with [-5]\n                            else\n                                replace item (3) of [player data v] with [5]\n                            end\n                            replace item (4) of [player data v] with [10]\n                        else\n                            replace item (3) of [player data v] with [0]\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\nif <(item (4) of [player data v]) > [-20]> then\n    if <[collisions v] contains [03]?> then\n        if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n            replace item (4) of [player data v] with ((item (4) of [player data v]) + (.5))\n        else\n            replace item (4) of [player data v] with ((item (4) of [player data v]) - (.5))\n        end\n        replace item (4) of [player data v] with ((item (4) of [player data v]) * (.9))\n    else\n        replace item (4) of [player data v] with ((item (4) of [player data v]) - (1))\n    end\nend\nreplace item (2) of [player data v] with ((item (2) of [player data v]) - (item (4) of [player data v]))\ndetect collision\nif <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n    replace item (2) of [player data v] with ((item (2) of [player data v]) + (item (4) of [player data v]))\n    if <<[collisions v] contains [15]?> and <<key (up arrow v) pressed?> or <key (w v) pressed?>>> then\n        replace item (4) of [player data v] with [12]\n    else\n        replace item (4) of [player data v] with [0]\n    end\nend\nreplace item (2) of [player data v] with ((item (2) of [player data v]) - (-1))\ndetect collision\nif <<[collisions v] contains [01]?> or <[collisions v] contains [15]?>> then\n    if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n        replace item (4) of [player data v] with [12]\n    end\nend\nif <[collisions v] contains [05]?> then\n    replace item (4) of [player data v] with [20]\nend\nreplace item (2) of [player data v] with ((item (2) of [player data v]) - (1))\ndetect collision\nif <[collisions v] contains [02]?> then\n    delete all of [player data v]\n    repeat (5)\n        add [0] to [player data v]\n    end\n    set [mode v] to [show]\nend\nif <[collisions v] contains [04]?> then\n    delete all of [player data v]\n    repeat (5)\n        add [0] to [player data v]\n    end\n    change [level v] by (1)\n    generate terrain\nend\nchange [x v] by (((item (1) of [player data v]) - (X)) * (.5))\nchange [y v] by (((item (2) of [player data v]) - (Y)) * (.5))\n\ndefine do stuff\nrender blocks\nrender guy\nif <(mode) = [editor]> then\n    physics (editor)\nelse\n    if <(mode) = [show]> then\n        show landscape\n    else\n        physics (player/cam)\n    end\nend\n\ndefine detect collision\nset [counter1 v] to [1]\ndelete all of [collisions v]\nrepeat ((length of [platform data v]) / (3))\n    set [ram1 v] to (join (letter (1) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (2) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (3) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (4) of (item (((counter1) * (3)) - (2)) of [platform data v])) (letter (5) of (item (((counter1) * (3)) - (2)) of [platform data v]))))))\n    set [ram2 v] to (join (letter (1) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (2) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (3) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (4) of (item (((counter1) * (3)) - (1)) of [platform data v])) (letter (5) of (item (((counter1) * (3)) - (1)) of [platform data v]))))))\n    set [ram3 v] to (join (letter (6) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (7) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (8) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (9) of (item (((counter1) * (3)) - (1)) of [platform data v])) (letter (10) of (item (((counter1) * (3)) - (1)) of [platform data v]))))))\n    set [ram4 v] to (join (letter (6) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (7) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (8) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (9) of (item (((counter1) * (3)) - (2)) of [platform data v])) (letter (10) of (item (((counter1) * (3)) - (2)) of [platform data v]))))))\n    if <<<((20) + (RAM1)) > (item (1) of [player data v])> and <(item (1) of [player data v]) > ((-20) + (RAM2))>> and <<((20) + (RAM3)) > (item (2) of [player data v])> and <(item (2) of [player data v]) > ((-20) + (RAM4))>>> then\n        add (item ((counter1) * (3)) of [platform data v]) to [collisions v]\n    end\n    change [counter1 v] by (1)\nend\n\ndefine render blocks\nset [counter1 v] to [1]\nrepeat ((length of [platform data v]) / (3))\n    render iff on screen\n    pen up\n    change [counter1 v] by (1)\nend\n\ndefine physics (editor)\nif <key (right arrow v) pressed?> then\n    change [x v] by (-10)\nend\nif <key (left arrow v) pressed?> then\n    change [x v] by (10)\nend\nif <key (up arrow v) pressed?> then\n    change [y v] by (-10)\nend\nif <key (down arrow v) pressed?> then\n    change [y v] by (10)\nend\nif <key (space v) pressed?> then\n    set [mode v] to [0]\nelse\n    if <key (1 v) pressed?> then\n        set [mode v] to [01]\n    end\n    if <key (2 v) pressed?> then\n        set [mode v] to [15]\n    end\n    if <key (3 v) pressed?> then\n        set [mode v] to [02]\n    end\n    if <key (4 v) pressed?> then\n        set [mode v] to [03]\n    end\n    if <key (5 v) pressed?> then\n        set [mode v] to [04]\n    end\nend\nif <mouse down?> then\n    add point ((X) - (mouse x)) ((Y) - (mouse y)) to platform data\n    wait until <not <mouse down?>>\n    add point ((X) - (mouse x)) ((Y) - (mouse y)) to platform data\n    add (mode) to [platform data v]\nend\n\ndefine add point (x) (y) to platform data\nif <(length of (x)) = [1]> then\n    add (y) to (join [0000] (x))\nelse\n    if <(length of (x)) = [2]> then\n        if <(letter (1) of (x)) = [-]> then\n            add (y) to (join [-000] (letter (2) of (x)))\n        else\n            add (y) to (join [000] (x))\n        end\n    else\n        if <(length of (x)) = [3]> then\n            if <(letter (1) of (x)) = [-]> then\n                add (y) to (join [-00] (join (letter (2) of (x)) (letter (3) of (x))))\n            else\n                add (y) to (join [00] (x))\n            end\n        else\n            if <(length of (x)) = [4]> then\n                if <(letter (1) of (x)) = [-]> then\n                    add (y) to (join [-0] (join (join (letter (2) of (x)) (letter (3) of (x))) (letter (4) of (x))))\n                else\n                    add (y) to (join [0] (x))\n                end\n            else\n                if <(length of (x)) = [5]> then\n                    add (y) to (x)\n                end\n            end\n        end\n    end\nend\n\ndefine add (y) to (x)\nif <(length of (y)) = [1]> then\n    add (join (x) (join [0000] (y))) to [platform data v]\nelse\n    if <(length of (y)) = [2]> then\n        if <(letter (1) of (y)) = [-]> then\n            add (join (x) (join [-000] (letter (2) of (y)))) to [platform data v]\n        else\n            add (join (x) (join [000] (y))) to [platform data v]\n        end\n    else\n        if <(length of (y)) = [3]> then\n            if <(letter (1) of (y)) = [-]> then\n                add (join (x) (join [-00] (join (letter (2) of (y)) (letter (3) of (y))))) to [platform data v]\n            else\n                add (join (x) (join [00] (y))) to [platform data v]\n            end\n        else\n            if <(length of (y)) = [4]> then\n                if <(letter (1) of (y)) = [-]> then\n                    add (join (x) (join [-0] (join (join (letter (2) of (y)) (letter (3) of (y))) (letter (4) of (y))))) to [platform data v]\n                else\n                    add (join (x) (join [0] (y))) to [platform data v]\n                end\n            else\n                if <(length of (y)) = [5]> then\n                    add (join (x) (y)) to [platform data v]\n                end\n            end\n        end\n    end\nend\n\ndefine render grass block\nset pen color to (#5d2a00)\nset pen size to (10)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: ((-5) + (RAM2))\n    pen down\n    set [counter2 v] to [5]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (10))\n        change [counter2 v] by (-10)\n        set x to ((counter2) + (RAM1))\n        set y to (RAM4)\n        set y to ((-10) + (RAM2))\n    end\n    pen up\n    set pen color to (#25c300)\n    set pen size to (2)\n    set [counter2 v] to [5]\n    repeat (((10) + ([abs v] of ((RAM1) - (RAM3)) )) / (2))\n        pen up\n        set y to ((4) + (RAM2))\n        set x to ((counter2) + (RAM1))\n        pen down\n        set y to ((RAM2) - ((item ([abs v] of (counter2) ) of [cdfaooe v]) * (1)))\n        change [counter2 v] by (-2)\n    end\nend\n\ndefine render lava\nset pen color to (#ff0000)\nset pen size to (10)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set [counter2 v] to [0]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (10))\n        change [counter2 v] by (-10)\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        set y to ((pick random (0) to (1)) + (RAM2))\n        set pen (brightness v) to (pick random (95) to (100))\n        set pen (saturation v) to (pick random (95) to (100))\n        set pen (color v) to (pick random (0) to (2))\n    end\nend\n\ndefine render black box\nset pen color to (#000000)\nset pen size to (5)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set [counter2 v] to [0]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (5))\n        change [counter2 v] by (-5)\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        set y to ((0) + (RAM2))\n    end\nend\n\ndefine render climbing rock\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    pen up\n    set pen color to (#389d21)\n    set pen size to (2)\n    set [counter2 v] to [-10]\n    repeat (((-20) + ([abs v] of ((RAM1) - (RAM3)) )) / (2))\n        pen up\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        pen down\n        set y to ((RAM4) - ((item ([abs v] of (counter2) ) of [cdfaooe v]) * (1)))\n        change [counter2 v] by (-2)\n    end\n    pen up\n    set pen color to (#5d5d5d)\n    set pen size to (10)\n    go to x: ((RAM1) - (10)) y: ((-5) + (RAM2))\n    pen down\n    set [counter2 v] to [-5]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (10))\n        set x to ((counter2) + (RAM1))\n        set y to (RAM4)\n        set y to ((-5) + (RAM2))\n        change [counter2 v] by (-10)\n    end\n    pen up\n    set pen color to (#4f4f4f)\n    set pen size to (2)\n    set [counter2 v] to [0]\n    repeat (((0) + ([abs v] of ((RAM1) - (RAM3)) )) / (2))\n        pen up\n        set y to (RAM2)\n        set x to ((counter2) + (RAM1))\n        pen down\n        set y to (((RAM2) - ((item ([abs v] of (counter2) ) of [cdfaooe v]) * (1))) - (10))\n        change [counter2 v] by (-2)\n    end\nend\n\ndefine render iff on screen\nif <(item ((counter1) * (3)) of [platform data v]) = [01]> then\n    render grass block\nelse\n    if <(item ((counter1) * (3)) of [platform data v]) = [02]> then\n        render lava\n    else\n        if <(item ((counter1) * (3)) of [platform data v]) = [15]> then\n            render climbing rock\n        else\n            if <(item ((counter1) * (3)) of [platform data v]) = [03]> then\n                render water\n            else\n                if <(item ((counter1) * (3)) of [platform data v]) = [04]> then\n                    render goal\n                else\n                    if <(item ((counter1) * (3)) of [platform data v]) = [05]> then\n                        render bounce\n                    else\n                        render black box\n                    end\n                end\n            end\n        end\n    end\nend\n\ndefine render water\nset pen color to (#00a9ff)\nset pen size to (10)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set [counter2 v] to [0]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (10))\n        change [counter2 v] by (-10)\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        set y to ((pick random (0) to (1)) + (RAM2))\n        set pen (brightness v) to (pick random (97) to (100))\n        set pen (saturation v) to (pick random (95) to (100))\n        set pen (color v) to (55)\n    end\nend\n\ndefine generate terrain\ndelete all of [platform data v]\nif <key (space v) pressed?> then\n    biome4\nelse\n    if <(level) = [1]> then\n        biome1\n    else\n        if <(pick random (1) to (10)) = [3]> then\n            biome4\n        else\n            if <(pick random (1) to (9)) = [3]> then\n                biome3\n            else\n                if <(pick random (1) to (10)) = [3]> then\n                    biome2\n                else\n                    biome1\n                end\n            end\n        end\n    end\nend\n\ndefine render goal\nset pen color to (#ffe900)\nset pen size to (5)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set [counter2 v] to [0]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (5))\n        change [counter2 v] by (-5)\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        set y to ((0) + (RAM2))\n    end\n    pen up\n    set pen size to (pick random (10) to (11))\n    set pen (transparency v) to (pick random (50) to (60))\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set x to (RAM3)\n    set y to (RAM4)\n    set x to (RAM1)\n    set y to (RAM2)\n    set pen (transparency v) to (0)\nend\n\ndefine fill RAM (x) (y)\nset [ram1 v] to ((x) - (join (letter (1) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (2) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (3) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (4) of (item (((counter1) * (3)) - (1)) of [platform data v])) (letter (5) of (item (((counter1) * (3)) - (1)) of [platform data v])))))))\nset [ram2 v] to ((y) - (join (letter (6) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (7) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (8) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (9) of (item (((counter1) * (3)) - (2)) of [platform data v])) (letter (10) of (item (((counter1) * (3)) - (2)) of [platform data v])))))))\nset [ram3 v] to ((x) - (join (letter (1) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (2) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (3) of (item (((counter1) * (3)) - (2)) of [platform data v])) (join (letter (4) of (item (((counter1) * (3)) - (2)) of [platform data v])) (letter (5) of (item (((counter1) * (3)) - (2)) of [platform data v])))))))\nset [ram4 v] to ((y) - (join (letter (6) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (7) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (8) of (item (((counter1) * (3)) - (1)) of [platform data v])) (join (letter (9) of (item (((counter1) * (3)) - (1)) of [platform data v])) (letter (10) of (item (((counter1) * (3)) - (1)) of [platform data v])))))))\n\ndefine biome1\nset [counter1 v] to [01]\nset [ram1 v] to [100]\nset [ram2 v] to [50]\nset [ram3 v] to ((RAM1) + (pick random (-130) to (-330)))\nset [ram4 v] to [250]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [01] to [platform data v]\nrepeat (pick random (18) to (25))\n    if <<<(counter1) = [15]> or <(counter1) = [01]>> and <not <(pick random (1) to (4)) = [2]>>> then\n        set [counter1 v] to [02]\n    else\n        if <(pick random (1) to (15)) = [2]> then\n            set [counter1 v] to [15]\n        else\n            set [counter1 v] to [01]\n        end\n    end\n    set [ram1 v] to (RAM3)\n    if <(counter1) = [01]> then\n        set [ram2 v] to ((RAM2) + (pick random (-10) to (-50)))\n    else\n        if <(counter1) = [15]> then\n            set [ram2 v] to ((RAM2) + (pick random (10) to (-20)))\n        else\n            set [ram2 v] to ((RAM2) + (pick random (10) to (60)))\n        end\n    end\n    set [ram3 v] to ((RAM1) + (pick random (-50) to (-200)))\n    set [ram4 v] to ((RAM2) + (200))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    add (counter1) to [platform data v]\nend\nset [ram1 v] to ((RAM3) + (pick random (-50) to (50)))\nset [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\nset [ram3 v] to ((RAM1) + (-50))\nset [ram4 v] to ((RAM2) + (50))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [04] to [platform data v]\nset [x v] to (RAM3)\nset [y v] to (RAM4)\nset [mode v] to [show]\nset [ram1 v] to [500]\nset [ram2 v] to [250]\nset [ram3 v] to ((RAM3) + (-400))\nset [ram4 v] to ((RAM2) + (150))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [02] to [platform data v]\n\ndefine biome2\nset [counter1 v] to (pick random (200) to (300))\nset [counter2 v] to (pick random (-300) to (-200))\nset [ram1 v] to (counter1)\nset [ram2 v] to [-500]\nset [ram3 v] to (counter2)\nset [ram4 v] to [50]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [03] to [platform data v]\nset [ram1 v] to (counter1)\nset [ram2 v] to [50]\nset [ram3 v] to (counter2)\nset [ram4 v] to [250]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [15] to [platform data v]\nset [ram1 v] to ((counter1) + (pick random (150) to (200)))\nset [ram2 v] to [-510]\nset [ram3 v] to (counter1)\nset [ram4 v] to [250]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [01] to [platform data v]\nset [x v] to [0]\nset [y v] to (RAM2)\nset [mode v] to [show]\nset [ram3 v] to ((RAM1) + (pick random (-50) to (0)))\nset [ram1 v] to ((RAM3) + (100))\nset [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\nset [ram4 v] to ((RAM2) + (100))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [04] to [platform data v]\nset [ram1 v] to (counter2)\nset [ram2 v] to [-510]\nset [ram3 v] to ((counter2) + (pick random (-200) to (-150)))\nset [ram4 v] to [250]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [01] to [platform data v]\nset [ram1 v] to ((RAM3) + (pick random (0) to (50)))\nset [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\nset [ram3 v] to ((RAM1) + (-100))\nset [ram4 v] to ((RAM2) + (100))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [04] to [platform data v]\nset [counter1 v] to [01]\nrepeat (pick random (11) to (16))\n    if <<<(counter1) = [15]> or <(counter1) = [01]>> and <not <(pick random (1) to (10)) = [2]>>> then\n        set [counter1 v] to [02]\n    else\n        if <(pick random (1) to (5)) = [2]> then\n            set [counter1 v] to [01]\n        else\n            set [counter1 v] to [15]\n        end\n    end\n    set [ram1 v] to (pick random (-200) to (200))\n    set [ram2 v] to (pick random (-60) to (-560))\n    set [ram3 v] to ((RAM1) + (pick random (-20) to (-100)))\n    set [ram4 v] to ((RAM2) + (pick random (20) to (100)))\n    if <(RAM4) > [-20]> then\n        set [ram4 v] to [-20]\n    end\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    add (counter1) to [platform data v]\nend\n\ndefine biome3\nset [counter1 v] to [01]\nset [ram1 v] to [100]\nset [ram2 v] to [50]\nset [ram3 v] to (pick random (-40) to (-200))\nset [ram4 v] to [250]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [01] to [platform data v]\nrepeat (pick random (18) to (25))\n    if <<(counter1) = [05]> and <not <(pick random (1) to (10)) = [2]>>> then\n        set [counter1 v] to [*02]\n    else\n        if <<<(counter1) = [15]> or <(counter1) = [01]>> and <not <(pick random (1) to (3)) = [2]>>> then\n            set [counter1 v] to [02]\n        else\n            if <(pick random (1) to (3)) = [2]> then\n                if <(counter1) = [02]> then\n                    set [counter1 v] to [*05]\n                else\n                    set [counter1 v] to [05]\n                end\n            else\n                if <(pick random (1) to (10)) = [2]> then\n                    set [counter1 v] to [15]\n                else\n                    set [counter1 v] to [01]\n                end\n            end\n        end\n    end\n    set [ram1 v] to (RAM3)\n    if <(counter1) = [01]> then\n        set [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\n        set [ram3 v] to ((RAM1) + (pick random (-40) to (-100)))\n    else\n        if <(counter1) = [02]> then\n            set [ram2 v] to ((RAM2) + (pick random (10) to (90)))\n            set [ram3 v] to ((RAM1) + (pick random (-100) to (-200)))\n        else\n            if <(counter1) = [15]> then\n                set [ram2 v] to ((RAM2) + (pick random (0) to (-30)))\n                set [ram3 v] to ((RAM1) + (pick random (-50) to (-200)))\n            else\n                if <(counter1) = [*02]> then\n                    set [counter1 v] to [02]\n                    set [ram2 v] to ((RAM2) + (pick random (5) to (50)))\n                    set [ram3 v] to ((RAM1) + (pick random (-200) to (-300)))\n                else\n                    if <(counter1) = [*05]> then\n                        set [counter1 v] to [05]\n                        set [ram2 v] to ((RAM2) + (pick random (-10) to (-20)))\n                        set [ram3 v] to ((RAM1) + (pick random (-70) to (-130)))\n                    else\n                        set [ram2 v] to ((RAM2) + (pick random (30) to (5)))\n                        set [ram3 v] to ((RAM1) + (pick random (-70) to (-170)))\n                    end\n                end\n            end\n        end\n    end\n    set [ram4 v] to ((RAM2) + (200))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    add (counter1) to [platform data v]\nend\nset [ram1 v] to ((RAM3) + (pick random (-50) to (50)))\nset [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\nset [ram3 v] to ((RAM1) + (-50))\nset [ram4 v] to ((RAM2) + (50))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [04] to [platform data v]\nset [x v] to (RAM3)\nset [y v] to (RAM4)\nset [mode v] to [show]\nset [ram1 v] to [500]\nset [ram2 v] to [250]\nset [ram3 v] to ((RAM3) + (-400))\nset [ram4 v] to ((RAM2) + (150))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [02] to [platform data v]\n\ndefine render bounce\nset pen color to (#5900ff)\nset pen size to (5)\nfill RAM (X) (Y)\nif <not <<<[-300] > (RAM1)> or <(RAM3) > [300]>> or <<[-200] > (RAM2)> or <(RAM4) > [200]>>>> then\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set [counter2 v] to [0]\n    repeat (([abs v] of ((RAM1) - (RAM3)) ) / (5))\n        change [counter2 v] by (-5)\n        set y to (RAM4)\n        set x to ((counter2) + (RAM1))\n        set y to ((0) + (RAM2))\n    end\n    pen up\n    set pen color to (#e14eff)\n    set pen size to (pick random (10) to (11))\n    set pen (transparency v) to (pick random (50) to (60))\n    go to x: (RAM1) y: (RAM2)\n    pen down\n    set x to (RAM3)\n    set y to (RAM4)\n    set x to (RAM1)\n    set y to (RAM2)\n    set pen (transparency v) to (0)\nend\n\ndefine reset\nset [x v] to [0]\nset [y v] to [0]\nset [mode v] to [0]\ndelete all of [player data v]\nrepeat (5)\n    add [0] to [player data v]\nend\n\ndefine biome4\nset [counter1 v] to [01]\nset [ram1 v] to [100]\nset [ram2 v] to [50]\nset [ram3 v] to (pick random (-40) to (-200))\nset [ram4 v] to [200]\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [01] to [platform data v]\nadd point ((RAM1) + (250)) ((RAM2) + (pick random (10) to (30))) to platform data\nadd point (RAM1) [200] to platform data\nadd [02] to [platform data v]\nrepeat (pick random (1) to (3))\n    repeat (pick random (8) to (15))\n        if <<<(counter1) = [15]> or <(counter1) = [01]>> and <not <(pick random (1) to (6)) = [2]>>> then\n            set [counter1 v] to [02]\n        else\n            if <(pick random (1) to (15)) = [2]> then\n                set [counter1 v] to [15]\n            else\n                set [counter1 v] to [01]\n            end\n        end\n        set [ram1 v] to (RAM3)\n        if <(counter1) = [01]> then\n            set [ram2 v] to ((RAM4) + (pick random (-110) to (-150)))\n        else\n            if <(counter1) = [15]> then\n                set [ram2 v] to ((RAM4) + (pick random (-100) to (-130)))\n            else\n                set [ram2 v] to ((RAM4) + (pick random (-90) to (-40)))\n            end\n        end\n        set [ram3 v] to ((RAM1) + (pick random (-50) to (-200)))\n        add point (RAM1) (RAM2) to platform data\n        add point (RAM3) (RAM4) to platform data\n        add (counter1) to [platform data v]\n    end\n    set [ram1 v] to (RAM3)\n    set [ram2 v] to ((RAM4) + (pick random (-450) to (-500)))\n    set [ram3 v] to ((RAM1) + (pick random (-50) to (-200)))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    add [01] to [platform data v]\n    add point (RAM3) ((RAM2) + (pick random (10) to (30))) to platform data\n    add point ((RAM3) + (-250)) ((RAM2) + (150)) to platform data\n    add [02] to [platform data v]\n    set [ram3 v] to ((RAM1) + (pick random (200) to (50)))\n    set [ram2 v] to ((RAM2) + (pick random (-50) to (50)))\n    set [ram1 v] to ((RAM3) + (pick random (50) to (200)))\n    set [ram4 v] to ((RAM2) + (150))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    if <(pick random (1) to (10)) = [2]> then\n        add [15] to [platform data v]\n    else\n        add [01] to [platform data v]\n    end\n    repeat (pick random (8) to (15))\n        if <<<(counter1) = [15]> or <(counter1) = [01]>> and <not <(pick random (1) to (6)) = [2]>>> then\n            set [counter1 v] to [02]\n        else\n            if <(pick random (1) to (15)) = [2]> then\n                set [counter1 v] to [15]\n            else\n                set [counter1 v] to [01]\n            end\n        end\n        set [ram3 v] to (RAM1)\n        if <(counter1) = [01]> then\n            set [ram2 v] to ((RAM4) + (pick random (-110) to (-150)))\n        else\n            if <(counter1) = [15]> then\n                set [ram2 v] to ((RAM4) + (pick random (-100) to (-130)))\n            else\n                set [ram2 v] to ((RAM4) + (pick random (-90) to (-40)))\n            end\n        end\n        set [ram1 v] to ((RAM3) + (pick random (50) to (200)))\n        add point (RAM1) (RAM2) to platform data\n        add point (RAM3) (RAM4) to platform data\n        add (counter1) to [platform data v]\n    end\n    set [ram3 v] to (RAM1)\n    set [ram2 v] to ((RAM2) + (pick random (-450) to (-500)))\n    set [ram1 v] to ((RAM3) + (pick random (50) to (200)))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    add [01] to [platform data v]\n    add point ((RAM1) + (250)) ((RAM2) + (pick random (10) to (30))) to platform data\n    add point (RAM1) ((RAM2) + (150)) to platform data\n    add [02] to [platform data v]\n    set [ram1 v] to ((RAM3) + (pick random (-200) to (-50)))\n    set [ram2 v] to ((RAM2) + (pick random (-50) to (50)))\n    set [ram3 v] to ((RAM1) + (pick random (-50) to (-200)))\n    set [ram4 v] to ((RAM2) + (150))\n    add point (RAM1) (RAM2) to platform data\n    add point (RAM3) (RAM4) to platform data\n    if <(pick random (1) to (10)) = [2]> then\n        add [15] to [platform data v]\n    else\n        add [01] to [platform data v]\n    end\nend\nset [ram1 v] to ((RAM3) + (pick random (-50) to (50)))\nset [ram2 v] to ((RAM2) + (pick random (-50) to (-100)))\nset [ram3 v] to ((RAM1) + (-50))\nset [ram4 v] to ((RAM2) + (50))\nadd point (RAM1) (RAM2) to platform data\nadd point (RAM3) (RAM4) to platform data\nadd [04] to [platform data v]\nset [x v] to (RAM3)\nset [y v] to (RAM4)\nset [mode v] to [show]\n\ndefine show landscape\nif <([abs v] of (((item (1) of [player data v]) - (X)) * (.3)) ) < [30]> then\n    change [x v] by (((item (1) of [player data v]) - (X)) * (.3))\nelse\n    if <(((item (1) of [player data v]) - (X)) * (.5)) < [0]> then\n        change [x v] by (-30)\n    else\n        change [x v] by (30)\n    end\nend\nif <([abs v] of (((item (2) of [player data v]) - (Y)) * (.3)) ) < [30]> then\n    change [y v] by (((item (2) of [player data v]) - (Y)) * (.3))\nelse\n    if <(((item (2) of [player data v]) - (Y)) * (.5)) < [0]> then\n        change [y v] by (-30)\n    else\n        change [y v] by (30)\n    end\nend\nif <<((item (1) of [player data v]) - (X)) < [50]> and <((item (2) of [player data v]) - (Y)) < [50]>> then\n    set [mode v] to [0]\nend\n\n@logo\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (thumbnail v)\npoint in direction (90)\nset size to (100) %\nshow\nclear graphic effects\nset [ghost v] effect to (100)\nforever\n    play sound [06 - Winter Tundra.mp3 v] until done\nend\n\n