Minefrank Platformer

Instructions: Advertising is strictly banned:)\n\nSpidey Sense | A Platformer\n\n✦ Waypoints!\n✦ Collectables!\n✦ Moving platforms!\n✦ Spikes and Crushing Hammers!\n\n------\nHelp Spiderman on his journey through New York City. Visit central park, climb the Avengers tower and more in this high quality platformer! \n\n---------------\nInstructions:\n✦ Arrow keys or WASD to move \n✦ Don't touch spikes or lava!\n---------\n\nWow, this game took a while! I've been coding designing and drawing out this game from scratch this whole month. But its finally ready for you guys! If you enjoy my games please drop a Like and Fav! And follow me if you want more great content!\n~JumbleCoder

@Stage\n\n@Player\n\nwhen flag clicked\nset [pause v] to [1]\nforever\n    if <<<(Speed Y) > [35]> or <touching (danger v)?>> or <touching (spiky shooters v)?>> then\n        start sound [death v]\n        broadcast (Level Reset v) and wait\n        set [speed x v] to [0]\n        set [speed y v] to [0]\n        wait (1) seconds\n    end\nend\n\nwait (.5) seconds\n\nwhen I receive [set up v]\nset [ghost v] effect to (0)\nbroadcast (Reset v)\n\nwhen flag clicked\nbroadcast (Set up v)\n\nbroadcast (Level Reset v)\n\nwhen I receive [level reset v]\nset [pause v] to [1]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nbroadcast (Transition v)\n\nwhen flag clicked\nset [pause v] to [1]\nset [level v] to [1]\nset [level complete v] to [0]\nforever\n    if <touching (portal v)?> then\n        start sound [level-complete v]\n        set [level complete v] to [1]\n        broadcast (Level Reset v) and wait\n        set [speed x v] to [0]\n        set [speed y v] to [0]\n        wait (1) seconds\n    end\nend\n\nwhen flag clicked\nset [time v] to [0]\nrepeat until <(Level) = [13]>\n    change [time v] by (1)\n    wait (1) seconds\nend\nset [pause v] to [1]\nstop [other scripts in sprite v]\nif <(☁ WR) > (Time)> then\n    set [☁ wr v] to (Time)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [show v]\nshow\n\nwhen flag clicked\nset [pause v] to [1]\nwait (.01) seconds\nset [pause v] to [1]\n\nwhen flag clicked\nforever\n    if <(turbo?) = [true]> then\n        stop [all v]\n    end\nend\n\nset [time v] to [1324]\nset [level v] to [12]\n\n@Platform\n\ndefine Platformer\nif <<(Pause) = [0]> and <(turbo?) = [false]>> then\n    change [speed y v] by (1)\n    change y by (Speed Y)\n    if <touching (player v)?> then\n        repeat until <not <touching (player v)?>>\n            if <(Speed Y) < [0]> then\n                change y by (1)\n            end\n            if <(Speed Y) > [0]> then\n                change y by (-1)\n            end\n        end\n        set [speed y v] to ((-15) * <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > [0]>>> and <(Speed Y) > [0]>>)\n    end\n    change [speed x v] by (((2) * <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(mouse x) < [0]>>>) + ((-2) * <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > [0]>>>))\n    change x by (Speed X)\n    set [speed x v] to ((Speed X) * (.7))\n    set [slope v] to [0]\n    repeat until <<(Slope) = [8]> or <not <touching (player v)?>>>\n        change y by (-1)\n        change [slope v] by (1)\n    end\n    if <touching (player v)?> then\n        change y by (Slope)\n        repeat until <not <touching (player v)?>>\n            if <(Speed X) < [0]> then\n                change x by (1)\n            end\n            if <(Speed X) > [0]> then\n                change x by (-1)\n            end\n        end\n    end\nend\nbroadcast (Sync v)\n\nwhen flag clicked\nset [speed x v] to [0]\nset [speed y v] to [0]\nset [pause v] to [1]\nforever\n    switch costume to (Level)\n    if <(turbo?) = [false]> then\n        Platformer\n    end\nend\n\nwhen I receive [reset v]\ngo to x: (0) y: (0)\n\nwhen flag clicked\nforever\n    play sound [2019-10-18_-_Bumping_-_FesliyanStudios v] until done\nend\n\n@Portal\n\nwhen I receive [sync v]\nset x to ((Offset X) + (([x position v] of [platform v]) + (X)))\nset y to ((Offset Y) + (([y position v] of [platform v]) + (Y)))\nif <<(round ((Offset X) + (([x position v] of [platform v]) + (X)))) = (round (x position))> and <(round ((Offset Y) + (([y position v] of [platform v]) + (Y)))) = (round (y position))>> then\n    show\nelse\n    hide\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [1]> then\n        set [x v] to [480]\n        set [y v] to [-5]\n    else\n        if <(Level) = [2]> then\n            set [x v] to [485]\n            set [y v] to [60]\n        else\n            if <(Level) = [3]> then\n                set [x v] to [305]\n                set [y v] to [45]\n            else\n                if <(Level) = [4]> then\n                    set [x v] to [440]\n                    set [y v] to [0]\n                else\n                    if <(Level) = [5]> then\n                        set [x v] to [440]\n                        set [y v] to [0]\n                    else\n                        if <(Level) = [6]> then\n                            set [x v] to [415]\n                            set [y v] to [30]\n                        else\n                            if <(Level) = [7]> then\n                                set [x v] to [420]\n                                set [y v] to [0]\n                            else\n                                if <(Level) = [8]> then\n                                    set [x v] to [570]\n                                    set [y v] to [70]\n                                else\n                                    if <(Level) = [9]> then\n                                        set [x v] to [605]\n                                        set [y v] to [65]\n                                    else\n                                        if <(Level) = [10]> then\n                                            set [x v] to [510]\n                                            set [y v] to [0]\n                                        else\n                                            if <(Level) = [11]> then\n                                                set [x v] to [830]\n                                                set [y v] to [65]\n                                            else\n                                                if <(Level) = [12]> then\n                                                    set [x v] to [520]\n                                                    set [y v] to [60]\n                                                end\n                                            end\n                                        end\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nset [level v] to [1]\n\nwhen flag clicked\nforever\n    if <(Pause) = [0]> then\n        set [offset x v] to [-5]\n        set [offset y v] to [5]\n    end\n    repeat (5)\n        if <(Pause) = [0]> then\n            change [offset x v] by (1)\n        end\n    end\n    repeat (5)\n        if <(Pause) = [0]> then\n            change [offset y v] by (-1)\n        end\n    end\n    repeat (5)\n        if <(Pause) = [0]> then\n            change [offset x v] by (-1)\n        end\n    end\n    repeat (5)\n        if <(Pause) = [0]> then\n            change [offset y v] by (1)\n        end\n    end\nend\n\n@Danger\n\nwhen I receive [sync v]\nset x to ((Offset X) + (([x position v] of [platform v]) + (X)))\nset y to ((Offset Y) + (([y position v] of [platform v]) + (Y)))\nif <(Clone?) = [1]> then\n    if <<(Clone Level) = (Level)> and <<(round ((Offset X) + (([x position v] of [platform v]) + (X)))) = (round (x position))> and <(round ((Offset Y) + (([y position v] of [platform v]) + (Y)))) = (round (y position))>>> then\n        show\n    else\n        hide\n    end\nelse\n    hide\nend\n\nwhen I start as a clone\nset [offset x v] to [0]\nset [offset y v] to [0]\nset [clone? v] to [1]\npoint in direction (90)\nswitch costume to (1 v)\n\ndefine Create Clone: Clone Type: (type) Level: (level) X: (x) Y: (y)\nset [clone type v] to (type)\nset [clone level v] to (level)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\ndefine Turn\nturn right (8) degrees\n\ndefine Move\nset [offset x v] to [-85]\nwait (.5) seconds\nrepeat (17)\n    if <(Pause) = [0]> then\n        change [offset x v] by (10)\n    end\nend\nwait (.5) seconds\nrepeat (17)\n    if <(Pause) = [0]> then\n        change [offset x v] by (-10)\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(Pause) = [0]> then\n        Turn\n    end\nend\n\nwhen I start as a clone\nforever\n    if <(Pause) = [0]> then\n        if <(Clone Type) = [2]> then\n            Move\n        end\n        if <(Clone Type) = [3]> then\n            Out of ground\n        end\n    end\nend\n\nwhen I receive [reset v]\nset [clone? v] to [0]\nCreate Clone: Clone Type: [1] Level: [1] X: [100] Y: [-35]\nCreate Clone: Clone Type: [2] Level: [1] X: [320] Y: [-100]\nCreate Clone: Clone Type: [1] Level: [2] X: [173] Y: [-100]\nCreate Clone: Clone Type: [1] Level: [2] X: [332] Y: [-60]\nCreate Clone: Clone Type: [1] Level: [2] X: [407] Y: [-60]\nCreate Clone: Clone Type: [1] Level: [3] X: [300] Y: [-35]\nCreate Clone: Clone Type: [2] Level: [4] X: [225] Y: [-100]\nCreate Clone: Clone Type: [2] Level: [5] X: [225] Y: [30]\nCreate Clone: Clone Type: [1] Level: [6] X: [120] Y: [-100]\nCreate Clone: Clone Type: [3] Level: [7] X: [127] Y: [-35]\nCreate Clone: Clone Type: [3] Level: [7] X: [290] Y: [-35]\nCreate Clone: Clone Type: [2] Level: [7] X: [210] Y: [70]\nCreate Clone: Clone Type: [1] Level: [8] X: [185] Y: [-100]\nCreate Clone: Clone Type: [1] Level: [8] X: [325] Y: [-100]\nCreate Clone: Clone Type: [3] Level: [8] X: [470] Y: [30]\nCreate Clone: Clone Type: [3] Level: [9] X: [260] Y: [30]\nCreate Clone: Clone Type: [2] Level: [9] X: [455] Y: [-35]\nCreate Clone: Clone Type: [3] Level: [10] X: [140] Y: [-100]\nCreate Clone: Clone Type: [3] Level: [10] X: [315] Y: [85]\nCreate Clone: Clone Type: [1] Level: [11] X: [145] Y: [-95]\nCreate Clone: Clone Type: [3] Level: [11] X: [240] Y: [30]\nCreate Clone: Clone Type: [2] Level: [11] X: [415] Y: [-35]\nCreate Clone: Clone Type: [3] Level: [11] X: [700] Y: [210]\nCreate Clone: Clone Type: [3] Level: [11] X: [700] Y: [30]\nCreate Clone: Clone Type: [3] Level: [12] X: [207] Y: [82]\nCreate Clone: Clone Type: [2] Level: [12] X: [395] Y: [100]\n\nwhen I receive [set up v]\ndelete this clone\n\ndefine Out of ground\nset [offset y v] to [0]\nrepeat (6)\n    if <(Pause) = [0]> then\n        change [offset y v] by (-8)\n    end\nend\nwait (1.5) seconds\nrepeat (6)\n    if <(Pause) = [0]> then\n        change [offset y v] by (8)\n    end\nend\nwait (1.5) seconds\n\nbroadcast (Level Reset v)\nchange [offset y v] by (10)\n\nset [level v] to [12]\n\n@Transition\n\nwhen flag clicked\nhide\n\nwhen I receive [transition v]\nswitch costume to (0 v)\nshow\nset [ghost v] effect to (100)\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nchange [level v] by (Level Complete)\nset [level complete v] to [0]\nif <(Level) = [13]> then\n    broadcast (Win v)\n    forever\n        switch costume to (2 v)\n    end\nend\nbroadcast (Set up v)\nwait (.2) seconds\nset [pause v] to [0]\nrepeat (10)\n    change [ghost v] effect by (10)\nend\n\nset [ghost v] effect to (0)\n\nhide\n\nwait (.25) seconds\n\n@Decor\n\nwhen I receive [sync v]\ngo to (platform v)\n\n@Spiky shooters\n\nwhen I receive [sync v]\nset x to ((Offset X) + (([x position v] of [platform v]) + (X)))\nset y to ((Offset Y) + (([y position v] of [platform v]) + (Y)))\nif <(Clone?) = [1]> then\n    if <<(Clone Level) = (Level)> and <<(round ((Offset X) + (([x position v] of [platform v]) + (X)))) = (round (x position))> and <(round ((Offset Y) + (([y position v] of [platform v]) + (Y)))) = (round (y position))>>> then\n        show\n    else\n        hide\n    end\nelse\n    hide\nend\n\nwhen I start as a clone\nset [offset x v] to [0]\nset [offset y v] to [0]\nset [clone? v] to [1]\npoint in direction (90)\nswitch costume to (1 v)\nset x to ((Offset X) + (([x position v] of [platform v]) + (X)))\nset y to ((Offset Y) + (([y position v] of [platform v]) + (Y)))\nstart sound [shoot v]\nrepeat until <not <touching (platform v)?>>\n    Movement\nend\nrepeat (10)\n    Movement\nend\nrepeat until <touching (platform v)?>\n    Movement\nend\nrepeat (4)\n    change [ghost v] effect by (25)\nend\ndelete this clone\n\nrepeat (100)\n\ndefine Create Clone: Clone Type: (type) Level: (level) X: (x) Y: (y)\nset [clone type v] to (type)\nset [clone level v] to (level)\nset [x v] to (x)\nset [y v] to (y)\ncreate clone of (_myself_ v)\n\nwhen I receive [reset v]\nset [clone? v] to [0]\nwait until <(Pause) = [0]>\nrepeat until <(Pause) = [1]>\n    if <(Level) = [3]> then\n        Create Clone: Clone Type: [up] Level: [3] X: [124] Y: [-45]\n        wait (1.5) seconds\n    else\n        if <(Level) = [4]> then\n            Create Clone: Clone Type: [up] Level: [4] X: [223] Y: [0]\n            wait (1.5) seconds\n        else\n            if <(Level) = [6]> then\n                Create Clone: Clone Type: [left] Level: [6] X: [380] Y: [-32]\n                wait (1.5) seconds\n            else\n                if <(Level) = [8]> then\n                    Create Clone: Clone Type: [up] Level: [8] X: [255] Y: [-110]\n                    wait (1.5) seconds\n                else\n                    if <(Level) = [9]> then\n                        Create Clone: Clone Type: [up] Level: [9] X: [125] Y: [-50]\n                        wait (1.5) seconds\n                    else\n                        if <(Level) = [10]> then\n                            Create Clone: Clone Type: [up] Level: [10] X: [382] Y: [-50]\n                            wait (1.5) seconds\n                        else\n                            if <(Level) = [12]> then\n                                Create Clone: Clone Type: [left] Level: [12] X: [350] Y: [-65]\n                                wait (1.5) seconds\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\n\n\nwhen I receive [set up v]\ndelete this clone\n\nCreate Clone: Clone Type: [2] Level: [1] X: [320] Y: [-100]\nCreate Clone: Clone Type: [1] Level: [2] X: [173] Y: [-100]\nCreate Clone: Clone Type: [1] Level: [2] X: [332] Y: [-60]\nCreate Clone: Clone Type: [1] Level: [2] X: [407] Y: [-60]\n\nforever\n\ndefine Movement\nif <(Pause) = [0]> then\n    turn right (15) degrees\n    if <(Clone Type) = [up]> then\n        change [offset y v] by (8)\n    else\n        if <(Clone Type) = [left]> then\n            change [offset x v] by (-8)\n        end\n    end\nend\n\nbroadcast (Level Reset v)\nset [level v] to [12]\n\n@thumbnail\n\nwhen flag clicked\nforever\n    reset timer\nend\n\nwhen [timer v] > (0)\ngo to [front v] layer\nshow\n\nwhen flag clicked\ngo to [front v] layer\nshow\nrepeat (50)\n    change [ghost v] effect by (2)\nend\nbroadcast (Countdown v)\n\n@Sprite1\n\nwhen I receive [win v]\nshow\nwait (1) seconds\nset [level v] to [1]\n\nwhen flag clicked\nhide\nforever\n    go to x: (0) y: (-60)\n    repeat (10)\n        change y by (2)\n    end\n    repeat (10)\n        change y by (-2)\n    end\nend\n\nset [time v] to [1541]\nset [level v] to [12]\n\n@your score\n\nwhen I start as a clone\nforever\n    if <(Clone ID) > (length of (Time))> then\n        hide\n    else\n        show\n        switch costume to (letter (Clone ID) of (Time))\n    end\n    go to [front v] layer\n    set size to (400) %\n    go to x: (((-18) + ((-18) * (length of (Time)))) + ((Clone ID) * (36))) y: (110)\nend\n\nwhen I receive [win v]\nset [clone id v] to [0]\nrepeat (10)\n    change [clone id v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nhide\n\n@Highscore\n\nwhen I start as a clone\nforever\n    if <(Clone ID) > (length of (☁ WR))> then\n        hide\n    else\n        show\n        switch costume to (letter (Clone ID) of (☁ WR))\n    end\n    go to [front v] layer\n    set size to (400) %\n    go to x: (((60) + ((-18) * (length of (☁ WR)))) + ((Clone ID) * (36))) y: (48)\nend\n\nwhen I receive [win v]\nset [clone id v] to [0]\nrepeat (10)\n    change [clone id v] by (1)\n    create clone of (_myself_ v)\nend\n\nwhen flag clicked\nhide\n\nset [☁ wr v] to [1234]\n\nwhen flag clicked\nrepeat (10)\n    set [pause v] to [1]\nend\n\n@Highscore Symbol\n\nwhen I receive [win v]\nshow\n\nwhen flag clicked\nhide\nforever\n    go to x: (((-36) + ((-18) * (length of (☁ WR)))) + (36)) y: (64)\nend\n\ngo to x: (-110) y: (64)\n\n@Countdown\n\nwhen I receive [countdown v]\nset [pause v] to [1]\ngo to [front v] layer\nswitch costume to (3 v)\nshow\nrepeat (4)\n    set [ghost v] effect to (100)\n    repeat (10)\n        change [ghost v] effect by (-10)\n    end\n    wait (1) seconds\n    repeat (10)\n        change [ghost v] effect by (10)\n    end\n    next costume\nend\nhide\nbroadcast (show v)\nset [pause v] to [0]\n\nwhen flag clicked\nset [pause v] to [1]\nhide\ngo to [front v] layer\n\n@TURBO MODE DETECTOR\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nset [tick v] to [0]\nforever\n    change [tick v] by (1)\nend\n\nwhen flag clicked\nset [1 v] to [0]\nset [turbo? v] to [false]\nforever\n    set [2 v] to (tick)\n    wait (0.01) seconds\n    set [1 v] to ((((tick) - (2)) * (1)) * (1))\n    set [turbo? v] to <((1) * (1)) > [2]>\nend\n\n