Super Mario World v1.1.2 - A Scrolling Platformer - Mobile Supported
@Stage\n\nwhen I receive [backgroundupdate v]\nset volume to (80) %\nstop all sounds\nif <(round (MapY)) = [-210]> then\n    switch backdrop to (1 v)\nend\nif <(round (MapY)) = [150]> then\n    switch backdrop to (2 v)\nend\nif <(round (Pause)) = [1]> then\n    switch backdrop to (1 v)\n    start sound [Main v]\nelse\n    start sound (backdrop [number v])\nend\n\nwhen I receive [death v]\nstop all sounds\nset volume to (100) %\nstart sound [Death v]\n\nwhen I receive [win v]\nstop all sounds\nset volume to (100) %\nstart sound [Win v]\nwait (7.3) seconds\nset [won v] to [1]\nwait (1) seconds\nif <(Level) = [1]> then\n    set [level v] to [2]\n    broadcast (ResetForLevels v)\n    wait (0.9) seconds\n    broadcast (Reset v)\nend\n\nwhen flag clicked\nswitch backdrop to (1 v)\n\n@Player\n\nwhen I receive [hidegame v]\nhide\n\nwhen I receive [showgame v]\nshow\n\nwhen I receive [sendplayerup v]\nrepeat until <not <touching (spinning blocks v)?>>\n    change y by (1)\nend\n\nwhen I receive [resetforlevels v]\nset [gravity v] to [-3]\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [playerx v] to [-480]\nset [playery v] to [200]\nset [mapx v] to [360]\nset [mapy v] to [-210]\nset [powerup v] to [None]\nset [poweruptype v] to [None]\nset [previouspowerup v] to [0]\nset [allowplayermovement v] to [1]\nset [dead? v] to [0]\nset [pipetravel? v] to [0]\nset [allowdamage v] to [1]\nset [beginautoxscroll v] to [0]\nset [mapyautomovespeed v] to [0]\nset [mapxrightboundary v] to [-3360]\nset [mapxautomovespeed v] to [0]\nset [won v] to [0]\nset [maintainspin v] to [0]\n\nwhen I receive [thwompsmoved v]\nif <(AllowPlayerMovement) = [1]> then\n    set [crouching? v] to [0]\n    set [sliding? v] to [0]\n    if <<(YVel) = [0]> and <<key (s v) pressed?> or <<key (down arrow v) pressed?> or <<mouse down?> and <(mouse y) < ((y position) - (50))>>>>> then\n        set [crouching? v] to [1]\n    end\nend\nswitch costume to (join (Crouching?) (PowerupType))\nset x to ((PlayerX) + (MapX))\nif <(AllowPlayerMovement) = [1]> then\n    set y to ((PlayerY) + (MapY))\n    change [yvel v] by ((Gravity) / (3.1))\n    change y by (Gravity)\n    if <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>> then\n        change y by ((Gravity) * (-1))\n        FindFloor\n        if <(MaintainSpin) = [0]> then\n            set [yvel v] to [0]\n            set [spinning v] to [0]\n        end\n        if <<<key (w v) pressed?> or <key (space v) pressed?>> or <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (50))>>>> then\n            if <key (space v) pressed?> then\n                set [yvel v] to [13.5]\n                change [xvel v] by ((XVel) / (1.5))\n                set [spinning v] to [1]\n                start sound [Spin v]\n            else\n                set [yvel v] to [16]\n                start sound [Jump v]\n            end\n        end\n    end\n    change y by (YVel)\n    if <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>> then\n        change y by ((YVel) * (-1))\n        if <<(Crouching?) = [0]> and <<key (s v) pressed?> or <<key (down arrow v) pressed?> or <<mouse down?> and <(mouse y) < ((y position) - (50))>>>>> then\n            set [crouching? v] to [1]\n        end\n        if <(YVel) > [0]> then\n            FindCeiling\n            change y by (1)\n            if <not <<touching (spinning blocks v)?> or <touching (platforms v)?>>> then\n                set [yvel v] to [0]\n            end\n            change y by (-1)\n        else\n            FindFloor\n            change y by (1)\n            if <not <<touching (spinning blocks v)?> or <touching (platforms v)?>>> then\n                if <(MaintainSpin) = [0]> then\n                    set [spinning v] to [0]\n                    set [yvel v] to [0]\n                end\n            end\n            change y by (-1)\n        end\n    end\n    if <(Crouching?) = [0]> then\n        if <<key (a v) pressed?> or <<key (left arrow v) pressed?> or <<mouse down?> and <(mouse x) < ((x position) - (25))>>>> then\n            change [xvel v] by ((Gravity) / (1.5))\n            point in direction (-90)\n        end\n        if <<key (d v) pressed?> or <<key (right arrow v) pressed?> or <<mouse down?> and <(mouse x) > ((x position) + (25))>>>> then\n            change [xvel v] by ((Gravity) / (-1.5))\n            point in direction (90)\n        end\n    end\n    if <([abs v] of (XVel) ) > [5]> then\n        if <(XVel) > [0]> then\n            set [xvel v] to [5]\n        else\n            set [xvel v] to [-5]\n        end\n    end\n    change x by (XVel)\n    set [playerx v] to ((x position) - (MapX))\n    FindYSmooth\n    if <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>>>> then\n        FindNearestX\n        set [xvel v] to [0]\n    end\n    if <(Crouching?) = [1]> then\n        if <([abs v] of ((Gravity) * ((-2) / (5.7))) ) < [1.02]> then\n            set [xvel v] to ((XVel) / (1.02))\n        else\n            set [xvel v] to ((XVel) / ((Gravity) * ((-2) / (5.7))))\n        end\n    else\n        if <([abs v] of ((Gravity) * ((-2) / (3))) ) < [1.02]> then\n            set [xvel v] to ((XVel) / (1.02))\n        else\n            set [xvel v] to ((XVel) / ((Gravity) * ((-2) / (3))))\n        end\n    end\n    if <(y position) < [-178]> then\n        broadcast (Death v)\n    end\n    set [playerx v] to ((x position) - (MapX))\n    set [playery v] to ((y position) - (MapY))\n    change y by (-1)\nend\nbroadcast (FinishedMovement v)\n\nwhen flag clicked\nset size to (125) %\npoint in direction (90)\nset rotation style [left-right v]\nset [pause v] to [0]\nbroadcast (ResetForLevels v)\nwait (0.8) seconds\nbroadcast (Reset v)\n\ndefine FindFloor\nrepeat until <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>>\n    change y by (-1)\nend\nchange y by (1)\nif <(Crouching?) = [1]> then\n    change y by (-2)\n    if <touching (platforms v)?> then\n        change y by (2)\n        change [xvel v] by ((((y position) + (2)) - ((PlayerY) + (MapY))) / ((([abs v] of (XVel) ) / (XVel)) * (-5)))\n    else\n        change y by (2)\n        change [xvel v] by (((y position) - ((PlayerY) + (MapY))) / ((([abs v] of (XVel) ) / (XVel)) * (-5)))\n    end\n    if <([abs v] of (XVel) ) > [2]> then\n        set [sliding? v] to [1]\n    end\nend\n\ndefine FindCeiling\nrepeat until <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>>\n    change y by (1)\nend\nchange y by (-1)\n\ndefine FindNearestX\nif <(PassingThroughSpinners?) = [0]> then\n    set [checkpos v] to [0]\n    repeat until <not <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>>>>>\n        set x to ((PlayerX) + (MapX))\n        if <(CheckPos) > [0]> then\n            change [checkpos v] by (0.5)\n        else\n            change [checkpos v] by (-0.5)\n        end\n        set [checkpos v] to ((CheckPos) * (-1))\n        change x by (CheckPos)\n    end\nend\n\ndefine FindYSmooth\nrepeat (6)\n    if <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>> then\n        change y by (1)\n    end\nend\nif <<touching (level v)?> or <<<touching (spinning blocks v)?> and <(PassingThroughSpinners?) = [0]>> or <<<touching (platforms v)?> and <(PassingThroughPlatform) = [0]>> or <touching (thwomps v)?>>>> then\n    change y by (-6)\nend\n\nwhen I receive [goombasloaded v]\nset [maintainspin v] to [0]\nchange [costumeno. v] by (0.3334)\nif <(Won) = [1]> then\n    switch costume to (join [Won] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\nelse\n    if <(Dead?) = [1]> then\n        switch costume to (join [Dead] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n    else\n        if <(PipeTravel?) = [1]> then\n            switch costume to (join [Pipe] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n        else\n            if <(Spinning) = [1]> then\n                switch costume to (join [Spin] (join (([floor v] of (((CostumeNo.) * (1.8)) mod (4)) ) + (1)) (Powerup)))\n            else\n                if <(Sliding?) = [1]> then\n                    switch costume to (join [Slide] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n                    change y by (-2)\n                else\n                    if <(Crouching?) = [1]> then\n                        switch costume to (join [Crouch] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n                    else\n                        if <not <(YVel) = [0]>> then\n                            if <(YVel) > [3]> then\n                                switch costume to (join [Jump] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n                            else\n                                switch costume to (join [Fall] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n                            end\n                        else\n                            if <([abs v] of (XVel) ) > [0.2]> then\n                                if <(Powerup) = [None]> then\n                                    switch costume to (join [Run] (join (([floor v] of ((CostumeNo.) mod (2)) ) + (1)) (Powerup)))\n                                else\n                                    switch costume to (join [Run] (join (([floor v] of ((CostumeNo.) mod (3)) ) + (1)) (Powerup)))\n                                end\n                            else\n                                switch costume to (join [Idle] (join (([floor v] of ((CostumeNo.) mod (1)) ) + (1)) (Powerup)))\n                            end\n                        end\n                    end\n                end\n            end\n        end\n    end\nend\n\nwhen I receive [pipetravel v]\ngo to [back v] layer\nstart sound [Pipe/Damage v]\nset [crouching? v] to [0]\nset [sliding? v] to [0]\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [allowplayermovement v] to [0]\nrepeat (30)\n    change y by (-1)\nend\nset [mapy v] to (MapYDestination)\nbroadcast (BackgroundUpdate v)\nset y to (PlayerYDestination)\nset [playerx v] to ((x position) - (MapX))\nset [mapx v] to ((PlayerX) * (-1))\nwait (0) seconds\nif <(BeginAutoXScroll) = [0]> then\n    set [mapxautomovespeed v] to (BeginAutoXScroll)\nend\nif <(SetMapXBoundary) = [0]> then\n    set [mapxrightboundary v] to (SetMapXBoundary)\nend\nset [playerx v] to ((x position) - (MapX))\nset [mapx v] to ((PlayerX) * (-1))\nif <(PipeExitType) = [Down]> then\n    repeat until <not <touching (level v)?>>\n        change y by (-1)\n    end\nelse\n    repeat until <not <touching (level v)?>>\n        change y by (1)\n    end\nend\nset [mapxautomovespeed v] to (BeginAutoXScroll)\nset [mapxrightboundary v] to (SetMapXBoundary)\nset [playerx v] to ((x position) - (MapX))\nset [playery v] to ((y position) - (MapY))\nset [allowplayermovement v] to [1]\nset [pipetravel? v] to [0]\n\nwhen I receive [death v]\ngo to [front v] layer\nset [dead? v] to [1]\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [allowplayermovement v] to [0]\nif <not <(y position) < [-178]>> then\n    set [timesincedeath v] to [0]\n    repeat (80)\n        change [timesincedeath v] by (0.5)\n        change y by ((9) - (TimeSinceDeath))\n        turn right (45) degrees\n        if <(y position) < [-178]> then\n            hide\n        end\n    end\n    point in direction (90)\nelse\n    hide\n    wait (2.667) seconds\nend\ngo to [back v] layer\nshow\nbroadcast (ResetForLevels v)\nwait (0.9) seconds\nbroadcast (Reset v)\n\nwhen I receive [powerup v]\nif <(Dead?) = [0]> then\n    if <not <(PowerupType) = (Powerup)>> then\n        start sound [PowerUp v]\n        set [previouspowerup v] to (Powerup)\n        set [powerup v] to (PowerupType)\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n        set [powerup v] to (PreviousPowerup)\n        wait (0.1) seconds\n        set [powerup v] to (PowerupType)\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n        set [powerup v] to (PreviousPowerup)\n        wait (0.1) seconds\n        set [powerup v] to (PowerupType)\n    else\n        start sound [ExtraPowerup v]\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n    end\nend\n\nwhen I receive [powerdown v]\nif <(Dead?) = [0]> then\n    if <(Powerup) = [None]> then\n        broadcast (Death v)\n    else\n        start sound [Pipe/Damage v]\n        set [allowdamage v] to [0]\n        set [powerup v] to (PowerupType)\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n        set [powerup v] to (PowerupType)\n        wait (0.1) seconds\n        set [powerup v] to (PreviousPowerup)\n        wait (0.1) seconds\n        set [ghost v] effect to (100)\n        wait (0.1) seconds\n        set [ghost v] effect to (0)\n        set [powerup v] to (PowerupType)\n        wait (0.1) seconds\n        set [powerup v] to (PreviousPowerup)\n        set [poweruptype v] to (Powerup)\n        set [allowdamage v] to [1]\n    end\nend\n\nwhen I receive [bounce v]\nif <<<key (w v) pressed?> or <key (space v) pressed?>> or <<key (up arrow v) pressed?> or <<mouse down?> and <(mouse y) > ((y position) + (25))>>>> then\n    if <(Spinning) = [1]> then\n        start sound [Spin v]\n    end\n    set [yvel v] to [16]\nelse\n    set [yvel v] to [10]\nend\n\nwhen I receive [reset v]\nset [gravity v] to [-3]\nset [xvel v] to [0]\nset [yvel v] to [0]\nset [playerx v] to [-480]\nset [playery v] to [200]\nset [mapx v] to [360]\nset [mapy v] to [-210]\nset [powerup v] to [None]\nset [poweruptype v] to [None]\nset [previouspowerup v] to [0]\nset [allowplayermovement v] to [1]\nset [dead? v] to [0]\nset [pipetravel? v] to [0]\nset [allowdamage v] to [1]\nset [beginautoxscroll v] to [0]\nset [mapyautomovespeed v] to [0]\nset [mapxrightboundary v] to [-3360]\nset [mapxautomovespeed v] to [0]\nset [won v] to [0]\nset [maintainspin v] to [0]\nbroadcast (BackgroundUpdate v)\n\nwhen I receive [win v]\nwait until <(YVel) = [0]>\nchange y by (-1)\nset [allowplayermovement v] to [0]\nset [xvel v] to [1]\nrepeat (180)\n    if <(PlayerX) < ((GoalX) + (190))> then\n        change [playerx v] by (2)\n        change x by (2)\n    else\n        set [xvel v] to [0]\n    end\nend\nset [xvel v] to [0]\nset [beginautoxscroll v] to [0]\nset [mapyautomovespeed v] to [0]\nset [mapxrightboundary v] to [-3360]\nset [mapxautomovespeed v] to [0]\n\nchange [playerx v] by (120)\n\n@Level\n\nwhen flag clicked\nset [level v] to [1]\nset [cloneno. v] to [1]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [2]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [3]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [0]\nforever\n    broadcast (Tick v)\nend\n\nwhen I receive [tick v]\nif <(Pause) = [0]> then\n    set [passingthroughplatform v] to [0]\n    set [passingthroughspinners? v] to [0]\n    if <(CloneNo.) = [0]> then\n        if <(MapXAutoMoveSpeed) < [0]> then\n            change [mapx v] by (MapXAutoMoveSpeed)\n        else\n            change [mapx v] by ((((PlayerX) * (-1)) - (MapX)) / ((15) + ((Gravity) * (4.5))))\n        end\n        if <(MapX) > [360]> then\n            set [mapx v] to [360]\n        end\n        if <not <(MapXRightBoundary) = [0]>> then\n            if <(MapX) < (MapXRightBoundary)> then\n                set [mapx v] to (MapXRightBoundary)\n            end\n        end\n        if <(MapYAutoMoveSpeed) < [0]> then\n            change [mapy v] by (MapYAutoMoveSpeed)\n        end\n    end\n    switch costume to (dot v)\n    set size to (250) %\n    if <(CloneNo.) = [0]> then\n        switch costume to (join [Level] (join (Level) [A]))\n        if <<(MapX) < [-840]> or <(MapX) > [840]>> then\n            hide\n        else\n            show\n        end\n    end\n    if <(CloneNo.) = [1]> then\n        switch costume to (join [Level] (join (Level) [B]))\n        if <<(MapX) < [-2040]> or <(MapX) > [-360]>> then\n            hide\n        else\n            show\n        end\n    end\n    if <(CloneNo.) = [2]> then\n        switch costume to (join [Level] (join (Level) [C]))\n        if <<(MapX) < [-3240]> or <(MapX) > [-1560]>> then\n            hide\n        else\n            show\n        end\n    end\n    if <(CloneNo.) = [3]> then\n        switch costume to (join [Level] (join (Level) [D]))\n        if <<(MapX) < [-4440]> or <(MapX) > [-2760]>> then\n            hide\n        else\n            show\n        end\n    end\n    go to x: ((MapX) + ((CloneNo.) * (1200))) y: (MapY)\n    if <(CloneNo.) = [0]> then\n        broadcast (MapMoved v)\n    end\nend\n\nwhen I start as a clone\nshow\n\n@PipeScans\n\nwhen flag clicked\nset [ghost v] effect to (100)\nset size to (250) %\n\nwhen I receive [finishedmovement v]\nif <(PipeTravel?) = [0]> then\n    ScanPipes\nend\n\ndefine ScanPipes\nset [scanno. v] to [1]\nrepeat (length of [pipex v])\n    go to x: (((item (ScanNo.) of [pipex v]) * (20)) + (MapX)) y: (((item (ScanNo.) of [pipey v]) * (20)) + (MapY))\n    if <<key (s v) pressed?> or <<key (down arrow v) pressed?> or <<mouse down?> and <(mouse y) < ((y position) - (50))>>>> then\n        if <touching (player v)?> then\n            set [pipeexittype v] to (item (ScanNo.) of [exittype v])\n            set [playerydestination v] to (item (ScanNo.) of [playerydestination v])\n            set [mapydestination v] to (item (ScanNo.) of [mapydestination v])\n            set [pipetravel? v] to [1]\n            set [playerx v] to ((item (ScanNo.) of [pipex v]) * (20))\n            broadcast (PipeTravel v)\n            set [beginautoxscroll v] to (item (ScanNo.) of [pipeautoscroll v])\n            set [setmapxboundary v] to (item (ScanNo.) of [pipexboundary v])\n        end\n    end\n    change [scanno. v] by (1)\nend\n\nwhen I receive [reset v]\nforever\n    delete all of [pipex v]\n    delete all of [pipey v]\n    delete all of [mapydestination v]\n    delete all of [playerydestination v]\n    delete all of [exittype v]\n    delete all of [pipexboundary v]\n    delete all of [pipeautoscroll v]\n    if <(Level) = [1]> then\n        add [-8] to [pipex v]\n        add [12.5] to [pipey v]\n        add [150] to [mapydestination v]\n        add [80] to [playerydestination v]\n        add [Down] to [exittype v]\n        add [0] to [pipeautoscroll v]\n        add [-3360] to [pipexboundary v]\n        add [12] to [pipex v]\n        add [-11.5] to [pipey v]\n        add [-210] to [mapydestination v]\n        add [-20] to [playerydestination v]\n        add [Up] to [exittype v]\n        add [0] to [pipeautoscroll v]\n        add [-3360] to [pipexboundary v]\n        add [97] to [pipex v]\n        add [9.5] to [pipey v]\n        add [150] to [mapydestination v]\n        add [100] to [playerydestination v]\n        add [Down] to [exittype v]\n        add [-1] to [pipeautoscroll v]\n        add [-2760] to [pipexboundary v]\n        add [135] to [pipex v]\n        add [-11.5] to [pipey v]\n        add [-210] to [mapydestination v]\n        add [-20] to [playerydestination v]\n        add [Up] to [exittype v]\n        add [0] to [pipeautoscroll v]\n        add [-3360] to [pipexboundary v]\n    end\n    if <(Level) = [2]> then\n        add [-16] to [pipex v]\n        add [9.5] to [pipey v]\n        add [150] to [mapydestination v]\n        add [80] to [playerydestination v]\n        add [Down] to [exittype v]\n        add [0] to [pipeautoscroll v]\n        add [-3360] to [pipexboundary v]\n        add [149] to [pipex v]\n        add [-8.5] to [pipey v]\n        add [-210] to [mapydestination v]\n        add [-20] to [playerydestination v]\n        add [Up] to [exittype v]\n        add [0] to [pipeautoscroll v]\n        add [-3360] to [pipexboundary v]\n    end\nend\n\nwhen I receive [showgame v]\nshow\n\n@Block\n\nwhen flag clicked\nset size to (250) %\nhide\n\ndefine LoadBlocks\nset [blockno. v] to [0]\nrepeat ((length of [blockx v]) - (BlockNo.))\n    change [blockno. v] by (1)\n    go to x: (((item (BlockNo.) of [blockx v]) * (20)) + (MapX)) y: (((item (BlockNo.) of [blocky v]) * (20)) + (MapY))\n    if <<<(x position) > [-240]> and <(x position) < [240]>> and <<(y position) > [-180]> and <(y position) < [180]>>> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [finishedmovement v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(DeleteBlockNo.) > [0]> then\n    delete (DeleteBlockNo.) of [blockx v]\n    delete (DeleteBlockNo.) of [blocky v]\n    delete (DeleteBlockNo.) of [blockcontents v]\n    set [deleteblockno. v] to [0]\nend\nLoadBlocks\n\nwhen I start as a clone\nswitch costume to (hitbox v)\nshow\ngo to [front v] layer\ngo [backward v] (2) layers\nif <touching (player v)?> then\n    set size to (300) %\n    set [deleteblockno. v] to (BlockNo.)\n    set [itemspawnx v] to (item (BlockNo.) of [blockx v])\n    set [itemspawny v] to (item (BlockNo.) of [blocky v])\n    if <(item (BlockNo.) of [blockcontents v]) = [Coin]> then\n        create clone of (coinanim v)\n    end\n    if <(item (BlockNo.) of [blockcontents v]) = [Big]> then\n        add (item (BlockNo.) of [blockx v]) to [itemx v]\n        add (item (BlockNo.) of [blocky v]) to [itemy v]\n        add [90] to [itemdir v]\n        start sound [PowerupAppears v]\n    end\nend\nswitch costume to ((([floor v] of ((CostumeNo.) / (2)) ) mod (4)) + (1))\n\nwhen I receive [reset v]\nset [deleteblockno. v] to [0]\ndelete all of [blockx v]\ndelete all of [blocky v]\ndelete all of [blockcontents v]\nif <(Level) = [1]> then\n    if <[level1] = [level1]> then\n        add [-15.5] to [blockx v]\n        add [11] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [-17.5] to [blockx v]\n        add [11] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [-19.5] to [blockx v]\n        add [11] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [-17.5] to [blockx v]\n        add [15] to [blocky v]\n        add [Big] to [blockcontents v]\n        add [7.5] to [blockx v]\n        add [17] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [7.5] to [blockx v]\n        add [12] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [16.54] to [blockx v]\n        add [17] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [16.5] to [blockx v]\n        add [12] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [40.5] to [blockx v]\n        add [18] to [blocky v]\n        add [Big] to [blockcontents v]\n        add [55.5] to [blockx v]\n        add [12] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [104.5] to [blockx v]\n        add [12] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [108.5] to [blockx v]\n        add [12] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [112.5] to [blockx v]\n        add [13] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [116.5] to [blockx v]\n        add [13] to [blocky v]\n        add [Coin] to [blockcontents v]\n    end\n    if <[cave] = [cave]> then\n        add [-14.5] to [blockx v]\n        add [-4] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [-2.5] to [blockx v]\n        add [-11] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [-0.5] to [blockx v]\n        add [-3] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [4.5] to [blockx v]\n        add [-3] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [8.5] to [blockx v]\n        add [-3] to [blocky v]\n        add [Coin] to [blockcontents v]\n        add [13.5] to [blockx v]\n        add [-3] to [blocky v]\n        add [Big] to [blockcontents v]\n        add [137.5] to [blockx v]\n        add [-6] to [blocky v]\n        add [Big] to [blockcontents v]\n        add [137.5] to [blockx v]\n        add [-10] to [blocky v]\n        add [Coin] to [blockcontents v]\n    end\nend\nif <(Level) = [2]> then\n    add [0.5] to [blockx v]\n    add [-4] to [blocky v]\n    add [Big] to [blockcontents v]\n    add [-3.5] to [blockx v]\n    add [-4] to [blocky v]\n    add [Coin] to [blockcontents v]\n    add [144.5] to [blockx v]\n    add [-6] to [blocky v]\n    add [Big] to [blockcontents v]\n    add [143.5] to [blockx v]\n    add [12] to [blocky v]\n    add [Coin] to [blockcontents v]\nend\n\nwhen I receive [hidegame v]\nhide\n\n@CoinAnim\n\nwhen flag clicked\nset size to (250) %\nhide\nset [timesincespawn v] to [0]\nset [myx v] to [0]\nset [myy v] to [0]\n\nwhen I start as a clone\nstart sound [Coin v]\nshow\nset [timesincespawn v] to [0]\nset [myx v] to (ItemSpawnX)\nset [myy v] to (ItemSpawnY)\ngo to x: (((MyX) * (20)) + (MapX)) y: (((MyY) * (20)) + (MapY))\nwait (0.6) seconds\nset [ghost v] effect to (25)\nwait (0) seconds\nset [ghost v] effect to (50)\nwait (0) seconds\nset [ghost v] effect to (75)\nwait (0) seconds\ndelete this clone\n\nwhen I receive [finishedmovement v]\nchange [timesincespawn v] by (1)\ngo to x: (((MyX) * (20)) + (MapX)) y: (((MyY) * (20)) + (MapY))\nchange [myy v] by (((12) - (TimeSinceSpawn)) / (20))\nswitch costume to ((([floor v] of (CostumeNo.) ) mod (4)) + (1))\n\nwhen I receive [hidegame v]\nhide\n\n@Items\n\nwhen flag clicked\nset rotation style [don't rotate v]\nset size to (250) %\nhide\n\ndefine LoadItems\nset [itemno. v] to [1]\nrepeat (length of [itemx v])\n    go to x: (((item (ItemNo.) of [itemx v]) * (20)) + (MapX)) y: (((item (ItemNo.) of [itemy v]) * (20)) + (MapY))\n    if <<<(x position) > [-240]> and <(x position) < [240]>> and <<(y position) > [-180]> and <(y position) < [180]>>> then\n        point in direction (item (ItemNo.) of [itemdir v])\n        create clone of (_myself_ v)\n    end\n    change [itemno. v] by (1)\nend\n\nwhen I receive [thwompsplaced v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(DeleteItemNo.) > [0]> then\n    delete (DeleteItemNo.) of [itemdir v]\n    delete (DeleteItemNo.) of [itemx v]\n    delete (DeleteItemNo.) of [itemy v]\n    set [deleteitemno. v] to [0]\nend\nif <(length of [itemx v]) > [0]> then\n    LoadItems\nend\n\nwhen I start as a clone\nshow\nswitch costume to (bighitbox v)\nchange y by ((Gravity) * (2))\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>> then\n    change y by ((Gravity) * (-2))\n    FindFloor\nend\nreplace item (ItemNo.) of [itemy v] with (((y position) - (MapY)) / (20))\nchange x by ((direction) / (90))\nFindFloorSmooth\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>> then\n    turn right (180) degrees\n    move (1) steps\n    if <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>> then\n        turn right (180) degrees\n    end\n    replace item (ItemNo.) of [itemdir v] with (direction)\nend\nreplace item (ItemNo.) of [itemx v] with (((x position) - (MapX)) / (20))\nswitch costume to (big v)\nif <touching (player v)?> then\n    set [poweruptype v] to (costume [name v])\n    broadcast (Powerup v)\n    set [deleteitemno. v] to (ItemNo.)\nend\n\ndefine FindFloor\nrepeat until <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>>\n    change y by (-1)\nend\nif <touching (thwomps v)?> then\n    change y by (2)\nend\nchange y by (1)\n\ndefine FindFloorSmooth\nrepeat (3)\n    if <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>> then\n        change y by (1)\n    end\nend\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (thwomps v)?>>> then\n    change y by (-3)\nend\n\nwhen I receive [reset v]\nset [deleteitemno. v] to [0]\ndelete all of [itemdir v]\ndelete all of [itemx v]\ndelete all of [itemy v]\n\n@Goombas\n\nwhen flag clicked\nset rotation style [left-right v]\nset size to (125) %\nhide\n\ndefine LoadGoombas\nset [goombano. v] to [1]\nrepeat (length of [goombax v])\n    go to x: (((item (GoombaNo.) of [goombax v]) * (20)) + (MapX)) y: (((item (GoombaNo.) of [goombay v]) * (20)) + (MapY))\n    if <<<(x position) > [-230]> and <(x position) < [230]>> and <<(y position) > [-169]> and <(y position) < [169]>>> then\n        point in direction (item (GoombaNo.) of [goombadir v])\n        create clone of (_myself_ v)\n    end\n    change [goombano. v] by (1)\nend\n\nwhen I receive [finishedmovement v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(DeleteGooombaNo.) > [0]> then\n    delete (DeleteGooombaNo.) of [goombadir v]\n    delete (DeleteGooombaNo.) of [goombax v]\n    delete (DeleteGooombaNo.) of [goombay v]\n    set [deletegooombano. v] to [0]\nend\nif <(length of [goombax v]) > [0]> then\n    LoadGoombas\nend\nbroadcast (GoombasLoaded v)\n\ndefine FindFloor\nrepeat until <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>>\n    change y by (-1)\nend\nchange y by (1)\n\ndefine FindFloorSmooth\nrepeat (6)\n    if <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>> then\n        change y by (1)\n    end\nend\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>> then\n    change y by (-6)\nend\n\nwhen I start as a clone\nswitch costume to (bighitbox v)\nshow\nchange y by ((Gravity) * (2))\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>> then\n    change y by ((Gravity) * (-2))\n    FindFloor\nend\nreplace item (GoombaNo.) of [goombay v] with (((y position) - (MapY)) / (20))\nchange x by ((direction) / (90))\nFindFloorSmooth\nif <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>> then\n    turn right (180) degrees\n    move (1) steps\n    if <<touching (level v)?> or <<touching (platforms v)?> or <touching (spinning blocks v)?>>> then\n        turn right (180) degrees\n    end\n    replace item (GoombaNo.) of [goombadir v] with (direction)\nend\nreplace item (GoombaNo.) of [goombax v] with (((x position) - (MapX)) / (20))\nswitch costume to (hitboxtop v)\nif <touching (player v)?> then\n    if <(Sliding?) = [1]> then\n        set [deletegooombano. v] to (GoombaNo.)\n        switch costume to (3 v)\n        start sound [Stomp v]\n        wait (0) seconds\n    else\n        set [deletegooombano. v] to (GoombaNo.)\n        broadcast (Bounce v)\n        set [maintainspin v] to [1]\n        switch costume to (3 v)\n        start sound [Stomp v]\n        wait (0) seconds\n    end\nelse\n    switch costume to (bighitbox v)\n    if <touching (player v)?> then\n        if <(Sliding?) = [1]> then\n            set [deletegooombano. v] to (GoombaNo.)\n            switch costume to (3 v)\n            start sound [Stomp v]\n            wait (0) seconds\n        else\n            if <(AllowDamage) = [1]> then\n                broadcast (PowerDown v)\n            end\n        end\n    end\nend\nswitch costume to ((([floor v] of ((CostumeNo.) / (4)) ) mod (2)) + (1))\n\nwhen I receive [reset v]\ndelete all of [goombadir v]\ndelete all of [goombax v]\ndelete all of [goombay v]\nif <(Level) = [1]> then\n    add [90] to [goombadir v]\n    add [-5] to [goombax v]\n    add [11] to [goombay v]\n    add [-90] to [goombadir v]\n    add [59.5] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [57.5] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [55.5] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [53.5] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [51.5] to [goombax v]\n    add [9] to [goombay v]\n    add [-90] to [goombadir v]\n    add [49.5] to [goombax v]\n    add [10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [47.5] to [goombax v]\n    add [11] to [goombay v]\n    add [-90] to [goombadir v]\n    add [132] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [128] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [124] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [120] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [116] to [goombax v]\n    add [10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [112] to [goombax v]\n    add [11] to [goombay v]\n    add [-90] to [goombadir v]\n    add [108] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [104] to [goombax v]\n    add [8] to [goombay v]\n    add [-90] to [goombadir v]\n    set [deletegooombano. v] to [0]\n    wait (2) seconds\n    forever\n        go to x: (((12) * (20)) + (MapX)) y: (((10) * (20)) + (MapY))\n        if <<<<(x position) > [-229]> and <(x position) < [229]>> and <<(y position) > [-170]> and <(y position) < [170]>>> and <(distance to [player v]) > [30]>> then\n            add [-90] to [goombadir v]\n            add [12] to [goombax v]\n            add [10] to [goombay v]\n        end\n        wait (4) seconds\n    end\nend\nif <(Level) = [2]> then\n    add [61.5] to [goombax v]\n    add [-2] to [goombay v]\n    add [90] to [goombadir v]\n    add [124] to [goombax v]\n    add [-8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [120] to [goombax v]\n    add [-9] to [goombay v]\n    add [-90] to [goombadir v]\n    add [116] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [112] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [108] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [122] to [goombax v]\n    add [-8] to [goombay v]\n    add [-90] to [goombadir v]\n    add [118] to [goombax v]\n    add [-9] to [goombay v]\n    add [-90] to [goombadir v]\n    add [114] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [110] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\n    add [106] to [goombax v]\n    add [-10] to [goombay v]\n    add [-90] to [goombadir v]\nend\n\nwhen I receive [mapmoved v]\ngo to x: (((item (GoombaNo.) of [goombax v]) * (20)) + (MapX)) y: (((item (GoombaNo.) of [goombay v]) * (20)) + (MapY))\n\n@Platforms\n\nwhen flag clicked\nset size to (250) %\nhide\n\ndefine FormPlatforms\nset [platformno. v] to [1]\nrepeat (length of [platformx v])\n    go to x: (((item (PlatformNo.) of [platformx v]) * (20)) + (MapX)) y: (((item (PlatformNo.) of [platformy v]) * (20)) + (MapY))\n    if <<<(x position) > [-284]> and <(x position) < [284]>> and <(y position) < [177]>> then\n        create clone of (_myself_ v)\n    end\n    change [platformno. v] by (1)\nend\n\nwhen I receive [goombasloaded v]\nif <[1] = [1]> then\n    delete this clone\nend\nFormPlatforms\n\nwhen I start as a clone\nshow\nif <not <(y position) > [-180]>> then\n    hide\nend\nif <(item (PlatformNo.) of [activatedplatforms v]) = [0]> then\n    if <(Dead?) = [0]> then\n        change y by (5)\n        if <<touching (player v)?> or <touching (goombas v)?>> then\n            replace item (PlatformNo.) of [activatedplatforms v] with [1]\n        end\n        change y by (-5)\n    end\nelse\n    if <(item (PlatformNo.) of [activatedplatforms v]) < [30]> then\n        replace item (PlatformNo.) of [activatedplatforms v] with ((item (PlatformNo.) of [activatedplatforms v]) + (1))\n        change x by (([sin v] of ((item (PlatformNo.) of [activatedplatforms v]) * (90)) ) * (2))\n    else\n        if <(item (PlatformNo.) of [activatedplatforms v]) < [210]> then\n            change y by (-2)\n            replace item (PlatformNo.) of [platformy v] with (((y position) - (MapY)) / (20))\n            replace item (PlatformNo.) of [activatedplatforms v] with ((item (PlatformNo.) of [activatedplatforms v]) + (1))\n        else\n            replace item (PlatformNo.) of [platformy v] with (item (PlatformNo.) of [originalplatformy v])\n            replace item (PlatformNo.) of [activatedplatforms v] with [0]\n        end\n    end\nend\n\nwhen I receive [mapmoved v]\ngo to x: (((item (PlatformNo.) of [platformx v]) * (20)) + (MapX)) y: (((item (PlatformNo.) of [platformy v]) * (20)) + (MapY))\nswitch costume to (hitboxbelow v)\nif <touching (player v)?> then\n    set [passingthroughplatform v] to [1]\nend\nswitch costume to (1 v)\nif <(item (PlatformNo.) of [activatedplatforms v]) > [29]> then\n    change y by (-2)\nend\nbroadcast (PlatformsMoved v)\n\nwhen I receive [reset v]\ndelete all of [activatedplatforms v]\ndelete all of [platformx v]\ndelete all of [platformy v]\ndelete all of [originalplatformy v]\nif <(Level) = [1]> then\n    add [0] to [activatedplatforms v]\n    add [67] to [platformx v]\n    add [7] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [78.5] to [platformx v]\n    add [5] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [84.5] to [platformx v]\n    add [5] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [106] to [platformx v]\n    add [-4] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [110] to [platformx v]\n    add [-4] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [114] to [platformx v]\n    add [-4] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [118] to [platformx v]\n    add [-4] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [122] to [platformx v]\n    add [-4] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\nend\nif <(Level) = [2]> then\n    add [0] to [activatedplatforms v]\n    add [37.5] to [platformx v]\n    add [-13] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [49.5] to [platformx v]\n    add [-13] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [63.5] to [platformx v]\n    add [-3] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [66] to [platformx v]\n    add [-3] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [68.5] to [platformx v]\n    add [-3] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [81.5] to [platformx v]\n    add [-13] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [119.5] to [platformx v]\n    add [-16] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [124.5] to [platformx v]\n    add [-16] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\n    add [0] to [activatedplatforms v]\n    add [129.5] to [platformx v]\n    add [-16] to [platformy v]\n    add (item (length of [platformy v]) of [platformy v]) to [originalplatformy v]\nend\n\nwhen I receive [hidegame v]\nhide\n\n@Background\n\nwhen I start as a clone\nset [clone v] to [1]\n\nwhen I receive [finishedmovement v]\ngo to [back v] layer\ngo to x: ((((MapX) * (0.2)) mod (480)) + ((Clone) * (-480))) y: (0)\nbroadcast (BackgroundPlaced v)\n\nwhen I receive [backgroundupdate v]\nif <(round (MapY)) = [-210]> then\n    switch costume to (1 v)\nend\nif <(round (MapY)) = [150]> then\n    switch costume to (2 v)\nend\n\nwhen flag clicked\nshow\ncreate clone of (_myself_ v)\nset [clone v] to [0]\n\n@Coins\n\nwhen flag clicked\nset size to (250) %\nhide\n\ndefine FormCoins\nset [coinno. v] to [0]\nswitch costume to (hitbox v)\nrepeat ((length of [coinx v]) - (CoinNo.))\n    change [coinno. v] by (1)\n    go to x: (((item (CoinNo.) of [coinx v]) * (20)) + (MapX)) y: (((item (CoinNo.) of [coiny v]) * (20)) + (MapY))\n    if <<<(x position) > [-240]> and <(x position) < [240]>> and <<(y position) > [-180]> and <(y position) < [180]>>> then\n        create clone of (_myself_ v)\n    end\nend\n\nwhen I receive [finishedmovement v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(DeleteCoinNo.) > [0]> then\n    delete (DeleteCoinNo.) of [coinx v]\n    delete (DeleteCoinNo.) of [coiny v]\n    set [deletecoinno. v] to [0]\nend\nif <(length of [coinx v]) > [0]> then\n    FormCoins\nend\n\nwhen I receive [reset v]\nset [deletecoinno. v] to [0]\ndelete all of [coinx v]\ndelete all of [coiny v]\nif <(Level) = [1]> then\n    add [-16.5] to [coinx v]\n    add [12] to [coiny v]\n    add [-17.5] to [coinx v]\n    add [12] to [coiny v]\n    add [-18.5] to [coinx v]\n    add [12] to [coiny v]\n    add [-16.5] to [coinx v]\n    add [13] to [coiny v]\n    add [-17.5] to [coinx v]\n    add [13] to [coiny v]\n    add [-18.5] to [coinx v]\n    add [13] to [coiny v]\n    add [-8.5] to [coinx v]\n    add [13] to [coiny v]\n    add [-7.5] to [coinx v]\n    add [13] to [coiny v]\n    add [-8.5] to [coinx v]\n    add [14] to [coiny v]\n    add [-7.5] to [coinx v]\n    add [14] to [coiny v]\n    add [12.5] to [coinx v]\n    add [-11] to [coiny v]\n    add [11.5] to [coinx v]\n    add [-11] to [coiny v]\n    add [12.5] to [coinx v]\n    add [-10] to [coiny v]\n    add [11.5] to [coinx v]\n    add [-10] to [coiny v]\n    add [65.5] to [coinx v]\n    add [4] to [coiny v]\n    add [66.5] to [coinx v]\n    add [4] to [coiny v]\n    add [67.5] to [coinx v]\n    add [4] to [coiny v]\n    add [68.5] to [coinx v]\n    add [4] to [coiny v]\n    add [65.5] to [coinx v]\n    add [5] to [coiny v]\n    add [66.5] to [coinx v]\n    add [5] to [coiny v]\n    add [67.5] to [coinx v]\n    add [5] to [coiny v]\n    add [68.5] to [coinx v]\n    add [5] to [coiny v]\n    add [130.5] to [coinx v]\n    add [-4] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-4] to [coiny v]\n    add [132.5] to [coinx v]\n    add [-4] to [coiny v]\n    add [133.5] to [coinx v]\n    add [-4] to [coiny v]\n    add [130.5] to [coinx v]\n    add [-3] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-3] to [coiny v]\n    add [132.5] to [coinx v]\n    add [-3] to [coiny v]\n    add [133.5] to [coinx v]\n    add [-3] to [coiny v]\n    add [130.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [132.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [133.5] to [coinx v]\n    add [-2] to [coiny v]\nend\nif <(Level) = [2]> then\n    add [-2.5] to [coinx v]\n    add [-10] to [coiny v]\n    add [-1.5] to [coinx v]\n    add [-10] to [coiny v]\n    add [-0.5] to [coinx v]\n    add [-10] to [coiny v]\n    add [-2.5] to [coinx v]\n    add [-11] to [coiny v]\n    add [-1.5] to [coinx v]\n    add [-11] to [coiny v]\n    add [-0.5] to [coinx v]\n    add [-11] to [coiny v]\n    add [-2.5] to [coinx v]\n    add [-12] to [coiny v]\n    add [-1.5] to [coinx v]\n    add [-12] to [coiny v]\n    add [-0.5] to [coinx v]\n    add [-12] to [coiny v]\n    add [24.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [25.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [26.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [27.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [24.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [25.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [26.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [27.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [24.5] to [coinx v]\n    add [0] to [coiny v]\n    add [25.5] to [coinx v]\n    add [0] to [coiny v]\n    add [26.5] to [coinx v]\n    add [0] to [coiny v]\n    add [27.5] to [coinx v]\n    add [0] to [coiny v]\n    add [24.5] to [coinx v]\n    add [1] to [coiny v]\n    add [25.5] to [coinx v]\n    add [1] to [coiny v]\n    add [26.5] to [coinx v]\n    add [1] to [coiny v]\n    add [27.5] to [coinx v]\n    add [1] to [coiny v]\n    add [47.5] to [coinx v]\n    add [0] to [coiny v]\n    add [48.5] to [coinx v]\n    add [0] to [coiny v]\n    add [49.5] to [coinx v]\n    add [0] to [coiny v]\n    add [50.5] to [coinx v]\n    add [0] to [coiny v]\n    add [51.5] to [coinx v]\n    add [0] to [coiny v]\n    add [47.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [48.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [49.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [50.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [51.5] to [coinx v]\n    add [-1] to [coiny v]\n    add [47.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [48.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [49.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [50.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [51.5] to [coinx v]\n    add [-2] to [coiny v]\n    add [81] to [coinx v]\n    add [-2] to [coiny v]\n    add [82] to [coinx v]\n    add [-2] to [coiny v]\n    add [81] to [coinx v]\n    add [-3] to [coiny v]\n    add [82] to [coinx v]\n    add [-3] to [coiny v]\n    add [81] to [coinx v]\n    add [-4] to [coiny v]\n    add [82] to [coinx v]\n    add [-4] to [coiny v]\n    add [111.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [111.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [111.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [113.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [113.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [113.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [115.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [115.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [115.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [117.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [117.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [117.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [119.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [119.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [119.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [121.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [121.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [121.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [123.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [123.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [123.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [125.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [125.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [125.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [127.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [127.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [127.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [129.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [129.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [129.5] to [coinx v]\n    add [-15] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-13] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-14] to [coiny v]\n    add [131.5] to [coinx v]\n    add [-15] to [coiny v]\nend\n\nwhen I start as a clone\nshow\nif <(DeleteCoinNo.) = [0]> then\n    if <touching (player v)?> then\n        set [itemspawnx v] to (item (CoinNo.) of [coinx v])\n        set [itemspawny v] to (item (CoinNo.) of [coiny v])\n        create clone of (coinanim v)\n        set [deletecoinno. v] to (CoinNo.)\n        hide\n    end\nend\nswitch costume to ((([floor v] of ((CostumeNo.) / (2)) ) mod (4)) + (1))\n\n@Goal\n\nwhen I receive [finishedmovement v]\ngo to x: ((GoalX) + (MapX)) y: ((GoalY) + (MapY))\nif <(Stop) = [0]> then\n    if <(GoalDirection) = [Up]> then\n        change [goaly v] by (1)\n    else\n        change [goaly v] by (-1)\n    end\n    if <(GoalY) < [155]> then\n        set [goaldirection v] to [Up]\n    end\n    if <(GoalY) > [315]> then\n        set [goaldirection v] to [Down]\n    end\n    if <<<(x position) > [-250]> and <(x position) < [250]>> and <<(y position) > [-180]> and <(y position) < [180]>>> then\n        show\n        if <touching (player v)?> then\n            set [stop v] to [1]\n            broadcast (Win v)\n        end\n    else\n        hide\n    end\nend\ngo [backward v] (1) layers\n\nwhen I receive [reset v]\ngo to [back v] layer\nset size to (250) %\nshow\nset [goalx v] to [3165]\nset [goaly v] to [315]\nset [goaldirection v] to [Up]\nset [stop v] to [0]\n\n@LevelBackgrounds\n\nwhen flag clicked\nshow\nset [ghost v] effect to (0)\nset [cloneno. v] to [1]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [2]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [3]\ncreate clone of (_myself_ v)\nset [cloneno. v] to [0]\n\nwhen I start as a clone\nshow\n\nwhen I receive [finishedmovement v]\nswitch costume to (dot v)\nset size to (250) %\nif <(CloneNo.) = [0]> then\n    switch costume to (join [Level] (join (Level) [A]))\n    if <<(MapX) < [-840]> or <(MapX) > [840]>> then\n        hide\n    else\n        show\n    end\nend\nif <(CloneNo.) = [1]> then\n    switch costume to (join [Level] (join (Level) [B]))\n    if <<(MapX) < [-2040]> or <(MapX) > [-360]>> then\n        hide\n    else\n        show\n    end\nend\nif <(CloneNo.) = [2]> then\n    switch costume to (join [Level] (join (Level) [C]))\n    if <<(MapX) < [-3240]> or <(MapX) > [-1560]>> then\n        hide\n    else\n        show\n    end\nend\nif <(CloneNo.) = [3]> then\n    switch costume to (join [Level] (join (Level) [D]))\n    if <<(MapX) < [-4440]> or <(MapX) > [-2915]>> then\n        hide\n    else\n        show\n    end\nend\ngo to x: ((MapX) + ((CloneNo.) * (1200))) y: (MapY)\ngo to [back v] layer\ngo [forward v] (1) layers\n\n@Wipe\n\nwhen I receive [win v]\nif <(Level) = [2]> then\n    wait (9) seconds\n    show\n    repeat (90)\n        change [ghost v] effect by (-4)\n        set x to ((x position) / (1.2))\n        go to [front v] layer\n    end\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\nset size to (100) %\nhide\n\nwhen I receive [reset v]\nhide\nset [ghost v] effect to (100)\ngo to x: (-480) y: (0)\n\nwhen this sprite clicked\nbroadcast (Reset v)\n\nwhen I receive [hidegame v]\nhide\n\n@Spinning Blocks\n\nwhen flag clicked\nhide\nset size to (250) %\n\nwhen I receive [goombasloaded v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(DeleteSpinningBlockNo.) > [0]> then\n    delete (DeleteSpinningBlockNo.) of [spinstate v]\n    delete (DeleteSpinningBlockNo.) of [spinx v]\n    delete (DeleteSpinningBlockNo.) of [spiny v]\n    set [deletespinningblockno. v] to [0]\nend\nFormBlocks\nbroadcast (SpinningBlocksPlaced v)\n\ndefine FormBlocks\nset [spinblockno. v] to [1]\nrepeat (length of [spinx v])\n    go to x: (((item (SpinBlockNo.) of [spinx v]) * (20)) + (MapX)) y: (((item (SpinBlockNo.) of [spiny v]) * (20)) + (MapY))\n    if <<<(x position) > [-240]> and <(x position) < [240]>> and <<(y position) > [-167]> and <(y position) < [167]>>> then\n        create clone of (_myself_ v)\n    end\n    change [spinblockno. v] by (1)\nend\n\nwhen I receive [reset v]\nset [deletespinningblockno. v] to [0]\ndelete all of [spinstate v]\ndelete all of [spinx v]\ndelete all of [spiny v]\nif <(Level) = [1]> then\nif <(Level) = [2]> then\n    add [-2.5] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [-1.5] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [-0.5] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [7] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [9] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [8] to [spinx v]\n    add [-9] to [spiny v]\n    add [1] to [spinstate v]\n    add [24.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [25.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [26.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [27.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [34.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [35.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [36.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [37.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [38.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [39.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [40.5] to [spinx v]\n    add [-3] to [spiny v]\n    add [1] to [spinstate v]\n    add [45.5] to [spinx v]\n    add [-8] to [spiny v]\n    add [1] to [spinstate v]\n    add [47.5] to [spinx v]\n    add [-8] to [spiny v]\n    add [1] to [spinstate v]\n    add [49.5] to [spinx v]\n    add [-8] to [spiny v]\n    add [1] to [spinstate v]\n    add [51.5] to [spinx v]\n    add [-8] to [spiny v]\n    add [1] to [spinstate v]\n    add [53.5] to [spinx v]\n    add [-8] to [spiny v]\n    add [1] to [spinstate v]\n    add [108.5] to [spinx v]\n    add [-11] to [spiny v]\n    add [1] to [spinstate v]\n    add [109.5] to [spinx v]\n    add [-11] to [spiny v]\n    add [1] to [spinstate v]\n    add [105.5] to [spinx v]\n    add [-6] to [spiny v]\n    add [1] to [spinstate v]\n    add [109.5] to [spinx v]\n    add [-5] to [spiny v]\n    add [1] to [spinstate v]\n    add [113.5] to [spinx v]\n    add [-5] to [spiny v]\n    add [1] to [spinstate v]\n    add [117.5] to [spinx v]\n    add [-6] to [spiny v]\n    add [1] to [spinstate v]\n    add [135.5] to [spinx v]\n    add [-12] to [spiny v]\n    add [1] to [spinstate v]\n    add [136.5] to [spinx v]\n    add [-12] to [spiny v]\n    add [1] to [spinstate v]\nend\n\nwhen I start as a clone\nshow\nswitch costume to (((item (SpinBlockNo.) of [spinstate v]) mod (4)) + (1))\nif <(item (SpinBlockNo.) of [spinstate v]) > [1]> then\n    replace item (SpinBlockNo.) of [spinstate v] with ((item (SpinBlockNo.) of [spinstate v]) + (1))\n    if <(item (SpinBlockNo.) of [spinstate v]) > [12]> then\n        switch costume to (1 v)\n        if <touching (player v)?> then\n            replace item (SpinBlockNo.) of [spinstate v] with [8]\n        else\n            replace item (SpinBlockNo.) of [spinstate v] with [1]\n        end\n    end\nelse\n    switch costume to (hitbox2 v)\n    if <(item (SpinBlockNo.) of [spinstate v]) = [1]> then\n        if <<touching (player v)?> and <(Spinning) = [1]>> then\n            set [deletespinningblockno. v] to (SpinBlockNo.)\n            set [maintainspin v] to [1]\n            broadcast (Bounce v)\n            start sound [Break v]\n        end\n        switch costume to (hitbox2 v)\n        if <touching (thwomps v)?> then\n            set [deletespinningblockno. v] to (SpinBlockNo.)\n            start sound [Break v]\n        end\n    end\n    if <not <(YVel) < [0]>> then\n        switch costume to (hitbox v)\n        if <touching (player v)?> then\n            replace item (SpinBlockNo.) of [spinstate v] with [2]\n        end\n    end\n    switch costume to ((item (SpinBlockNo.) of [spinstate v]) mod (4))\nend\n\nwhen I receive [platformsmoved v]\ngo to x: (((item (SpinBlockNo.) of [spinx v]) * (20)) + (MapX)) y: (((item (SpinBlockNo.) of [spiny v]) * (20)) + (MapY))\nif <(item (SpinBlockNo.) of [spinstate v]) > [1]> then\n    switch costume to (1 v)\n    if <touching (player v)?> then\n        set [passingthroughspinners? v] to [1]\n    end\n    hide\nend\nbroadcast (SpinningBlocksMoved v)\n\n@Thwomps\n\nwhen flag clicked\nset size to (125) %\nset rotation style [left-right v]\nhide\n\nwhen I receive [reset v]\ndelete all of [thwompx v]\ndelete all of [thwompy v]\ndelete all of [thwompstate v]\ndelete all of [thwompyvelocity v]\nif <(Level) = [1]> then\nif <(Level) = [2]> then\n    add [8] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [12] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [16] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [20] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [26] to [thwompx v]\n    add [-4.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [36] to [thwompx v]\n    add [-4.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [39] to [thwompx v]\n    add [-4.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [81.5] to [thwompx v]\n    add [-2.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [132.5] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [132.5] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [143] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\n    add [146] to [thwompx v]\n    add [-1.5] to [thwompy v]\n    add [0] to [thwompstate v]\n    add [0] to [thwompyvelocity v]\nend\n\nwhen I receive [spinningblocksplaced v]\nif <[1] = [1]> then\n    delete this clone\nend\nif <(length of [thwompx v]) > [0]> then\n    Thwomps\nend\nbroadcast (ThwompsPlaced v)\n\ndefine Thwomps\nset [thwompno. v] to [1]\nrepeat (length of [thwompx v])\n    go to x: (((item (ThwompNo.) of [thwompx v]) * (20)) + (MapX)) y: (((item (ThwompNo.) of [thwompy v]) * (20)) + (MapY))\n    if <<<(x position) > [-240]> and <(x position) < [240]>> and <<(y position) > [-180]> and <(y position) < [180]>>> then\n        create clone of (_myself_ v)\n    end\n    change [thwompno. v] by (1)\nend\n\nwhen I start as a clone\nshow\nswitch costume to (bouncehitbox v)\nif <touching (player v)?> then\n    if <(Spinning) = [1]> then\n        set [yvel v] to [8]\n        broadcast (Bounce v)\n        set [maintainspin v] to [1]\n    end\nelse\n    switch costume to (1 v)\n    if <touching (player v)?> then\n        broadcast (PowerDown v)\n    end\nend\nif <(item (ThwompNo.) of [thwompstate v]) = [0]> then\n    if <([abs v] of ((x position) - ([x position v] of [player v])) ) < [80]> then\n        point towards (player v)\n        switch costume to (2 v)\n        if <<([abs v] of ((x position) - ([x position v] of [player v])) ) < [30]> and <([y position v] of [player v]) < ((y position) + (40))>> then\n            replace item (ThwompNo.) of [thwompstate v] with [1]\n        end\n    else\n        switch costume to (1 v)\n    end\nend\nif <(item (ThwompNo.) of [thwompstate v]) = [1]> then\n    switch costume to (3 v)\n    change y by (-2)\n    change y by (item (ThwompNo.) of [thwompyvelocity v])\n    replace item (ThwompNo.) of [thwompyvelocity v] with ((item (ThwompNo.) of [thwompyvelocity v]) + (-1))\n    if <<touching (level v)?> or <<touching (spinning blocks v)?> or <touching (platforms v)?>>> then\n        FindFloor\n    end\n    start sound [HitFloor v]\n    replace item (ThwompNo.) of [thwompy v] with (((y position) - (MapY)) / (20))\nend\nif <<(item (ThwompNo.) of [thwompstate v]) > [1]> and <not <(item (ThwompNo.) of [thwompstate v]) = [3.5]>>> then\n    replace item (ThwompNo.) of [thwompstate v] with ((item (ThwompNo.) of [thwompstate v]) + (1))\n    switch costume to (3 v)\n    replace item (ThwompNo.) of [thwompyvelocity v] with [0]\nend\nif <(item (ThwompNo.) of [thwompstate v]) > [40]> then\n    replace item (ThwompNo.) of [thwompstate v] with [3.5]\nend\nif <(item (ThwompNo.) of [thwompstate v]) = [3.5]> then\n    switch costume to (1 v)\n    change y by (2)\n    if <<touching (level v)?> or <touching (spinning blocks v)?>> then\n        FindCeiling\n    end\n    replace item (ThwompNo.) of [thwompy v] with (((y position) - (MapY)) / (20))\n    replace item (ThwompNo.) of [thwompyvelocity v] with [0]\nend\n\nwhen I receive [spinningblocksmoved v]\nswitch costume to (1 v)\ngo to x: (((item (ThwompNo.) of [thwompx v]) * (20)) + (MapX)) y: (((item (ThwompNo.) of [thwompy v]) * (20)) + (MapY))\nif <(item (ThwompNo.) of [thwompstate v]) = [3.5]> then\n    change y by (2)\n    if <(Spinning) = [1]> then\n        if <touching (player v)?> then\n            set [maintainspin v] to [1]\n        end\n    end\nend\nbroadcast (ThwompsMoved v)\n\ndefine FindFloor\nrepeat until <not <<touching (level v)?> or <<touching (spinning blocks v)?> or <touching (platforms v)?>>>>\n    change y by (1)\nend\nreplace item (ThwompNo.) of [thwompstate v] with [2]\n\ndefine FindCeiling\nrepeat until <not <<touching (level v)?> or <touching (spinning blocks v)?>>>\n    change y by (-1)\nend\nreplace item (ThwompNo.) of [thwompstate v] with [0]\n\n@Thumbnail\n\nwhen flag clicked\ngo to x: (0) y: (0)\ngo to [front v] layer\ngo [forward v] (1) layers\nset [ghost v] effect to (100)\n\nwhen I receive [finishedmovement v]\ngo to [front v] layer\ngo [forward v] (1) layers\n\n@Levels\n\nwhen I receive [resetforlevels v]\ngo to x: (0) y: (0)\nclear graphic effects\nshow\ngo to [front v] layer\nswitch costume to (Level)\nwait (1) seconds\nrepeat (5)\n    change [ghost v] effect by (20)\nend\nhide\n\nwhen flag clicked\nhide\n\n
Click the Flag twice.\nMovement:\nWASD or Arrows\nSPACE for Spin Jump\nUse Pipes:\nS or Down Arrow\n\nAll 2 tile tall pipes can be interacted with.\nYou can slide down slopes, allowing you to take down multiple enemies at once.\nJump on Enemy's heads for an extra boost.