Atlantis - a platformer

Instructions:                                ATLANTIS\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nYou can't believe it: You found Atlantis...\n**************************************************************\n- Click the green flag twice!\n- Arrow keys, WASD or mobile to move\n- Avoid spikes\n- You can wall jump\n- press "n" to skip and "r" to restart\n- Have fun!\n

@Stage\n\nwhen flag clicked\nset [brightness v] effect to (0)\nswitch backdrop to (intro v)\nforever\n    if <(start1/2) = [1]> then\n        switch backdrop to (intro2 v)\n        forever\n            if <(level) = [7]> then\n                switch backdrop to (intro3 v)\n            end\n        end\n    end\nend\n\nwhen I receive [next v]\n\nchange [brightness v] effect by (-2)\n\n@ intro1\n\nwhen I receive [start v]\n\nwhen flag clicked\nshow\nforever\n    if <(start1/2) = [1]> then\n        hide\n    end\nend\n\n@intro2\n\nwhen flag clicked\nshow\n\nwhen I receive [start v]\nhide\n\nwhen flag clicked\ngo to x: (11) y: (-8)\nforever\n    go to [back v] layer\nend\n\nwhen flag clicked\nrepeat (80)\n    change y by (1)\nend\n\nwhen flag clicked\nset [ghost v] effect to (0)\nrepeat (80)\n    turn right (0.4) degrees\nend\nrepeat (20)\n    change [ghost v] effect by (10)\nend\n\n@intro3\n\nwhen flag clicked\nshow\n\nwhen I receive [start v]\nhide\n\nwhen flag clicked\nset [ghost v] effect to (100)\nrepeat (80)\n    go to (intro2 v)\n    change [ghost v] effect by (-2)\n    go to [back v] layer\n    go [forward v] (1) layers\nend\nrepeat (20)\n    go to (intro2 v)\n    change [ghost v] effect by (5)\nend\n\n@intro4\n\nwhen flag clicked\nshow\n\nwhen I receive [start v]\nhide\n\nwhen flag clicked\nset [start1/2 v] to [0]\nset size to (100) %\nset [ghost v] effect to (100)\nwait (1) seconds\nrepeat (60)\n    go to (intro2 v)\n    change [ghost v] effect by (-5)\n    go to [back v] layer\n    go [forward v] (1) layers\n    change size by (2)\nend\nrepeat (20)\n    go to (intro2 v)\n    change [ghost v] effect by (5)\nend\nbroadcast (start v)\nhide\nset [start1/2 v] to [1]\n\n@player\n\nwhen flag clicked\nset [ghost v] effect to (0)\nset [level v] to [1]\nswitch costume to (kostüm1 v)\nhide\nforever\n    if <(start1/2) = [1]> then\n        set [y v] to [0]\n        switch costume to (fantasia1 v)\n        go to [front v] layer\n        set rotation style [left-right v]\n        go to x: (-215) y: (125)\n        show\n        forever\n            if <touching (water v)?> then\n                change [y v] by (0.1)\n            end\n            if <not <touching (water v)?>> then\n                change [y v] by (-0.5)\n            end\n            if <<<key (down arrow v) pressed?> or <key (s v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n                if <touching (water v)?> then\n                    change [y v] by (-0.12)\n                end\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 [x v] by (-1)\n                point in direction (-90)\n            end\n            if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n                change [x v] by (1)\n                point in direction (90)\n            end\n            set [x v] to ((x) * (0.9))\n            change x by (x)\n            if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                change y by (1)\n            end\n            change y by (y)\n            if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                change y by ((y) * (-1))\n                set [y v] to [0]\n            end\n            change y by (-0.5)\n            if <<touching (ground v)?> and <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <((mouse y) - (y position)) > [50]>>>>> then\n                set [y v] to [10]\n            end\n            if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                change y by (1)\n                if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                    change y by (1)\n                    if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                        change y by (1)\n                        if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                            change y by (1)\n                            if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                                change y by (1)\n                                if <<touching (ground v)?> or <touching (moving platforms v)?>> then\n                                    change y by (-6)\n                                    if <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<mouse down?> and <((mouse y) - (y position)) > [50]>>>> then\n                                        set [y v] to [10]\n                                        if <(x) > [0]> then\n                                            set [x v] to [-10]\n                                        else\n                                            set [x v] to [10]\n                                        end\n                                    else\n                                        change x by ((x) * (-1))\n                                        set [x v] to [0]\n                                    end\n                                end\n                            end\n                        end\n                    end\n                end\n            end\n            if <(x position) > [239]> then\n                broadcast (next v)\n                change [level v] by (1)\n                go to x: (-215) y: (125)\n            end\n            if <touching (spikes v)?> then\n                broadcast (die v)\n                go to x: (-215) y: (25)\n            end\n            if <touching (trampoline v)?> then\n                set [y v] to [12.5]\n            end\n        end\n    end\nend\n\nwhen I receive [die v]\nswitch costume to (kostüm2 v)\nrepeat (5)\n    create clone of (_myself_ v)\nend\nswitch costume to (kostüm1 v)\ngo to x: (-215) y: (125)\n\nwhen I start as a clone\nset [ghost v] effect to (0)\npoint in direction (pick random (0) to (360))\nrepeat (5)\n    move (10) steps\n    change [ghost v] effect by (20)\nend\ndelete this clone\n\nchange [x v] by (1)\n\nwhen [n v] key pressed\nif <(start1/2) = [1]> then\n    change [level v] by (1)\n    go to x: (-215) y: (25)\n    broadcast (next v)\nend\n\nwhen [r v] key pressed\ngo to x: (-215) y: (125)\n\nwhen I receive [bounce v]\nset [y v] to [15]\n\nwhen flag clicked\nforever\n    if <(y position) < [-180]> then\n        broadcast (die v)\n    end\nend\n\nif <not <touching (water v)?>> then\n\nwhen [n v] key pressed\ngo to x: (-215) y: (125)\n\n@ground\n\nwhen flag clicked\nset [brightness v] effect to (0)\nhide\nforever\n    if <(start1/2) = [1]> then\n        show\n        forever\n            switch costume to (level)\n            go to [front v] layer\n            go [backward v] (2) layers\n        end\n    end\nend\n\nwhen I receive [next v]\n\nchange [brightness v] effect by (-5)\n\n@sun\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        show\n        go to x: (200) y: (134)\n        forever\n            go to [back v] layer\n            if <(level) = [7]> then\n                hide\n            end\n        end\n    end\nend\n\nwhen I receive [next v]\nchange y by (-2)\n\nif <(level) = [7]> then\n    hide\nend\n\nif <(level) = [7]> then\n    hide\nend\n\n@sunshine\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        go to (sun v)\n        show\n        forever\n            go to (sun v)\n            go to [back v] layer\n            if <(level) = [7]> then\n                hide\n            end\n        end\n    end\nend\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            wait (pick random (0.3) to (0.5)) seconds\n            create clone of (_myself_ v)\n        end\n    end\nend\n\nwhen I start as a clone\nset [ghost v] effect to (0)\npoint in direction (pick random (0) to (360))\nrepeat until <touching (_edge_ v)?>\n    move (2) steps\n    go to [back v] layer\n    change [ghost v] effect by (1)\nend\ndelete this clone\n\n@gefahren\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        show\n        forever\n            switch costume to (level)\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (die v)\n        wait (1) seconds\n    end\nend\n\nwhen flag clicked\nforever\n    if <(level) = [11]> then\n        set [ghost v] effect to (100)\n    end\nend\n\n@light small\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            set y to (-180)\n            point in direction (pick random (-30) to (30))\n            wait (pick random (0.3) to (1)) seconds\n            show\n            repeat until <(y position) > [170]>\n                move (2) steps\n                go to [back v] layer\n                go [forward v] (1) layers\n            end\n            hide\n        end\n    end\nend\n\n@light small2\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            set y to (-180)\n            point in direction (pick random (-30) to (30))\n            wait (pick random (0.3) to (1)) seconds\n            show\n            repeat until <(y position) > [170]>\n                move (2) steps\n                go to [back v] layer\n                go [forward v] (1) layers\n            end\n            hide\n        end\n    end\nend\n\n@light small3\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            set y to (-180)\n            point in direction (pick random (-30) to (30))\n            wait (pick random (0.3) to (1)) seconds\n            show\n            repeat until <(y position) > [170]>\n                move (2) steps\n                go to [back v] layer\n                go [forward v] (1) layers\n            end\n            hide\n        end\n    end\nend\n\n@water\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        switch costume to (3 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (60)\n        forever\n            repeat (6)\n                change y by (1.5)\n            end\n            repeat (6)\n                change y by (-1.5)\n            end\n        end\n    end\nend\n\nshow\n\n@säge\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            if <(level) = [4]> then\n                switch costume to (1 v)\n                show\n                go to x: (169) y: (-20)\n                repeat until <not <(level) = [4]>>\n                    repeat (70)\n                        turn right (5) degrees\n                    end\n                    repeat (70)\n                        turn left (5) degrees\n                    end\n                end\n                hide\n            end\n            if <(level) = [7]> then\n                switch costume to (1 v)\n                go to x: (177) y: (-62)\n                show\n                repeat until <not <(level) = [7]>>\n                    repeat (70)\n                        turn right (5) degrees\n                    end\n                    repeat (70)\n                        turn left (5) degrees\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (die v)\n        wait (1) seconds\n    end\nend\n\nwhen flag clicked\nforever\n    if <not <<(level) = [4]> or >> then\n        hide\n    end\nend\n\n@säge2\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        forever\n            if <(level) = [5]> then\n                switch costume to (1 v)\n                show\n                go to x: (0) y: (17)\n                repeat until <not <(level) = [5]>>\n                    repeat (70)\n                        turn right (5) degrees\n                    end\n                    repeat (70)\n                        turn left (5) degrees\n                    end\n                end\n            end\n            if <(level) = [13]> then\n                switch costume to (1 v)\n                show\n                go to x: (199) y: (61)\n                repeat until <not <(level) = [13]>>\n                    repeat (70)\n                        turn right (5) degrees\n                    end\n                    repeat (70)\n                        turn left (5) degrees\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (player v)?> then\n        broadcast (die v)\n        wait (1) seconds\n    end\nend\n\nif <(level) = [5]> then\n    switch costume to (1 v)\n    go to x: (52) y: (-126)\n    show\n    repeat until <not <(level) = [5]>>\n        repeat (70)\n            turn right (5) degrees\n        end\n        repeat (70)\n            turn left (5) degrees\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <not <<(level) = [5]> or >> then\n        hide\n    end\nend\n\n@water2\n\nwhen flag clicked\nhide\nforever\n    if <(start1/2) = [1]> then\n        switch costume to (4 v)\n        show\n        go to x: (0) y: (0)\n        set [ghost v] effect to (60)\n        forever\n            repeat (6)\n                change y by (-1.5)\n            end\n            repeat (6)\n                change y by (1.5)\n            end\n        end\n    end\nend\n\nshow\n\n@bild\n\nwhen flag clicked\nhide\n\nwhen flag clicked\nforever\n    go to [front v] layer\n    go [forward v] (1) layers\nend\n\n@Fish\n\nwhen flag clicked\npoint in direction (90)\nset size to (100) %\nhide\nforever\n    if <(start1/2) = [1]> then\n        set size to (100) %\n        forever\n            go to (random position v)\n            if <(y position) > [0]> then\n                set y to (pick random (-152) to (-20))\n            end\n            if <(pick random (1) to (2)) = [1]> then\n                set x to (-250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (1) to (4))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) > [240]>\n                    go to [back v] layer\n                    change x by (1)\n                end\n                hide\n            else\n                set x to (250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (5) to (8))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) < [-240]>\n                    change x by (-1)\n                    go to [back v] layer\n                end\n                hide\n            end\n        end\n    end\nend\n\n@Fish2\n\nwhen flag clicked\npoint in direction (90)\nset size to (100) %\nhide\nforever\n    if <(start1/2) = [1]> then\n        set size to (100) %\n        forever\n            go to (random position v)\n            if <(y position) > [0]> then\n                set y to (pick random (-152) to (-20))\n            end\n            if <(pick random (1) to (2)) = [1]> then\n                set x to (-250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (1) to (4))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) > [240]>\n                    go to [back v] layer\n                    change x by (1)\n                end\n                hide\n            else\n                set x to (250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (5) to (8))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) < [-240]>\n                    change x by (-1)\n                    go to [back v] layer\n                end\n                hide\n            end\n        end\n    end\nend\n\n@Fish3\n\nwhen flag clicked\npoint in direction (90)\nset size to (100) %\nhide\nforever\n    if <(start1/2) = [1]> then\n        set size to (100) %\n        forever\n            go to (random position v)\n            if <(y position) > [0]> then\n                set y to (pick random (-152) to (-20))\n            end\n            if <(pick random (1) to (2)) = [1]> then\n                set x to (-250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (1) to (4))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) > [240]>\n                    go to [back v] layer\n                    change x by (1)\n                end\n                hide\n            else\n                set x to (250)\n                change size by (pick random (-10) to (10))\n                switch costume to (pick random (5) to (8))\n                wait (pick random (1.00) to (3.00)) seconds\n                show\n                repeat until <(x position) < [-240]>\n                    change x by (-1)\n                    go to [back v] layer\n                end\n                hide\n            end\n        end\n    end\nend\n\n@ground2\n\nwhen flag clicked\nset [brightness v] effect to (0)\nhide\nforever\n    if <(start1/2) = [1]> then\n        show\n        forever\n            switch costume to (level)\n            go to [front v] layer\n            go [backward v] (1) layers\n        end\n    end\nend\n\nwhen I receive [next v]\n\nchange [brightness v] effect by (-5)\n\n@ground3\n\nwhen flag clicked\nset [brightness v] effect to (0)\nhide\nforever\n    if <(start1/2) = [1]> then\n        show\n        forever\n            switch costume to (level)\n            go to [back v] layer\n        end\n    end\nend\n\nwhen I receive [next v]\n\nchange [brightness v] effect by (-5)\n\n