Paper Mario: The Platformer

Instructions: Paper Mario: The Platformer is a game with 20+ levels, great level design and many surprises!\n\nUse arrow keys or WASD to move.\n\nIf you liked it, please love and fav.

@Stage\n\nwhen flag clicked\nswitch backdrop to (intro v)\n\nwhen I receive [start!! v]\nswitch backdrop to (1 v)\n\nwhen I receive [new level v]\nnext backdrop\n\nwhen I receive [world2 starts!! v]\nswitch backdrop to (12 v)\n\nwhen I receive [final castle!!! v]\nswitch backdrop to (20 v)\n\n@Mario\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <<touching (platforms v)?> or <touching (platforms2 v)?>>>\n    if <up?> then\n        change y by (-1)\n    else\n        change y by (1)\n        set [falling? v] to [0]\n    end\n    set [speed y v] to [0]\nend\n\ndefine Walk (direction) (speed)\npoint in direction (direction)\nchange x by (speed)\nset [slope v] to [0]\nrepeat until <<(slope) = [8]> or <not <<touching (platforms v)?> or <touching (platforms2 v)?>>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(slope) = [8]> then\n    change x by ((0) - (speed))\n    change y by ((0) - (slope))\n    if <<key (z v) pressed?> and <([abs v] of (speed) ) > [3]>> then\n        if <(wall jump) = [0]> then\n            set [speed x v] to ((-1.2) * (speed))\n            set [speed y v] to [11]\n            set [falling? v] to [6]\n            set [wall jump v] to [15]\n        end\n    else\n        set [speed x v] to [0]\n    end\nend\nif <(speed) < [0]> then\n    change [frame v] by ((speed) / (-8))\nelse\n    change [frame v] by ((speed) / (9))\nend\n\ndefine Set Costume\nif <(falling?) < [6]> then\n    if <(Frame) = [0]> then\n        switch costume to (stand_1 v)\n    else\n        switch costume to ([floor v] of ((4) + ((Frame) mod (2))) )\n    end\nelse\n    if <(speed y) > [0]> then\n        switch costume to (jump_1 v)\n    else\n        switch costume to (fall_1 v)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (end v)?> then\n        go to x: (-205) y: (-89)\n        change [level v] by (1)\n        broadcast (New Level v)\n    end\nend\n\nwhen flag clicked\nforever\n    change [frame v] by ((1) / (Change costume every))\nend\n\nset [change costume every v] to [1]\n\nwhen [z v] key pressed\n\nif <<touching (platforms v)?> or <(slope) = [8]>> then\n    start sound [Salto v]\nend\n\nwhen flag clicked\nforever\n    if <touching (goomba v)?> then\n        if <(y position) > (Y Goomba)> then\n            broadcast (Goomba Stomp v)\n        else\n            go to x: (-205) y: (-89)\n            broadcast (Restart v)\n        end\n    end\nend\n\nwhen flag clicked\npoint in direction (90)\nswitch costume to (stand_1 v)\nset [gameplay v] to [No]\nset [level v] to [1]\nhide\n\nwhen I receive [start!! v]\nset [level v] to [1]\nset rotation style [left-right v]\ngo to x: (-205) y: (-89)\nshow\nset [speed y v] to [0]\nset [falling? v] to [10]\nforever\n    if <(Gameplay) = [Yes]> then\n        switch costume to (hitbox v)\n        if <<(speed y) < [4]> or <key (z v) pressed?>> then\n            change [speed y v] by (-1)\n        else\n            change [speed y v] by (-2)\n        end\n        change y by (speed y)\n        Touch Ground <(speed y) > [0]>\n        if <(wall jump) > [0]> then\n            change [wall jump v] by (-1)\n        else\n            set [speed x v] to ((speed x) * (0.7))\n            if <<key (left arrow v) pressed?> or <key (a v) pressed?>> then\n                change [speed x v] by (-1.5)\n            end\n            if <<key (right arrow v) pressed?> or <key (d v) pressed?>> then\n                change [speed x v] by (1.5)\n            end\n        end\n        if <(speed x) < [-0.5]> then\n            Walk (-90) (speed x)\n        else\n            if <(speed x) > [0.5]> then\n                Walk (90) (speed x)\n            else\n                set [frame v] to [0]\n            end\n        end\n        if <key (z v) pressed?> then\n            if <<(Tecla de Salto) = [0]> and <(falling?) < [3]>> then\n                set [speed y v] to [14]\n                set [falling? v] to [6]\n                set [tecla de salto v] to [1]\n            end\n        else\n            set [tecla de salto v] to [0]\n        end\n        if <<(y position) < [-180]> or <<<touching (damage v)?> or <touching (fuzzy v)?>> or <<touching (lava bubble v)?> or <touching (pokey v)?>>>> then\n            go to x: (-230) y: (-89)\n            set [speed y v] to [0]\n            change [muertes v] by (1)\n            broadcast (Restart v)\n        end\n        Set Costume\n    end\nend\n\nwhen flag clicked\nforever\n    set [x mario v] to (x position)\n    set [y mario v] to (y position)\nend\n\ngo to [front v] layer\n\nwhen flag clicked\nforever\n    if <touching (new world v)?> then\n        if <(Level) = [11]> then\n            hide\n            set [gameplay v] to [No]\n            go to x: (-205) y: (-89)\n            broadcast (World2 v)\n        end\n        if <(Level) = [19]> then\n            hide\n            set [gameplay v] to [No]\n            go to x: (-205) y: (-89)\n            broadcast (Final World v)\n        end\n        if <(Level) = [24]> then\n            set [gameplay v] to [No]\n            broadcast (Ending v)\n            stop [this script v]\n        end\n    end\nend\n\nwhen I receive [world2 starts!! v]\nswitch costume to (stand_1 v)\nshow\n\n\n\nwhen I receive [final castle!!! v]\nswitch costume to (stand_1 v)\nshow\n\n@Platforms\n\nwhen flag clicked\nswitch costume to (1 v)\nset size to (100) %\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [start!! v]\nshow\n\nwhen I receive [new level v]\nnext costume\n\nwhen I receive [world2 starts!! v]\nswitch costume to (12 v)\n\nwhen I receive [final castle!!! v]\nswitch costume to (20 v)\n\n@End\n\nwhen flag clicked\ngo to x: (0) y: (0)\nswitch costume to (disfraz1 v)\nset [ghost v] effect to (100)\n\nwhen flag clicked\nforever\n    if <<(Level) = [11]> or <<(Level) = [19]> or <(Level) = [24]>>> then\n        hide\n    else\n        show\n    end\nend\n\n@Damage\n\n@Thumbnail\n\nwhen flag clicked\nshow\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nforever\n    go to [front v] layer\nend\n\n@Goomba\n\ngo to x: (40) y: (-89)\n\nwhen flag clicked\ngo to [front v] layer\nhide\nswitch costume to (goomba1 v)\nforever\n    set [y goomba v] to ((y position) + (20))\nend\n\nwhen I receive [goomba stomp v]\nstart sound [Super Mario Bros  Goomba Stomp Sound v]\nhide\n\nwhen I receive [start!! v]\nset [goomba animation v] to [True]\n\nwhen I receive [start!! v]\nshow\n\nwhen I receive [start!! v]\nforever\n    if <(Goomba Animation) = [True]> then\n        wait (0.3) seconds\n        next costume\n    else\n        switch costume to (goomba1 v)\n    end\nend\n\nwhen I receive [new level v]\nif <(Level) = [3]> then\n    go to x: (0) y: (-104)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nif <<<(Level) = [2]> or <(Level) = [8]>> or <<(Level) = [11]> or <<(Level) = [18]> or <(Level) = [22]>>>> then\n    set [goomba animation v] to [False]\n    hide\nelse\n    stop [this script v]\nend\n\nwhen flag clicked\nset [level v] to [1]\nforever\n    if <(Level) = [1]> then\n        point in direction (90)\n        glide (0.5) secs to x: (0) y: (-104)\n        point in direction (-90)\n        glide (0.5) secs to x: (40) y: (-104)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nif <(Level) = [7]> then\n    go to x: (-8) y: (57)\n    set [goomba animation v] to [True]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nforever\n    if <(Level) = [7]> then\n        point in direction (-90)\n        glide (0.5) secs to x: (-8) y: (57)\n        point in direction (90)\n        glide (0.5) secs to x: (-51) y: (56)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nif <(Level) = [10]> then\n    go to x: (202) y: (-28)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [restart v]\nif <(Level) = [3]> then\n    go to x: (0) y: (-104)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [restart v]\nif <(Level) = [21]> then\n    go to x: (23) y: (-101)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [restart v]\nif <(Level) = [17]> then\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nif <(Level) = [17]> then\n    go to x: (103) y: (16)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nif <(Level) = [21]> then\n    go to x: (23) y: (-101)\n    set [goomba animation v] to [False]\n    point in direction (90)\n    show\nelse\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nif <(Level) = [24]> then\n    show\n    go to x: (-196) y: (17)\n    set [goomba animation v] to [False]\n    point in direction (-90)\nelse\n    stop [this script v]\nend\n\nwhen I receive [restart v]\nif <(Level) = [24]> then\n    show\n    go to x: (-196) y: (17)\n    set [goomba animation v] to [False]\n    point in direction (-90)\nelse\n    stop [this script v]\nend\n\n@Logo\n\nwhen flag clicked\nset volume to (100) %\nset [ghost v] effect to (0)\nhide\nwait (3) seconds\ngo to x: (0) y: (219)\nshow\nglide (1) secs to x: (0) y: (115)\nbroadcast (Language v)\n\ngo to x: (0) y: (115)\n\nset [ghost v] effect to (0)\n\nwhen flag clicked\nforever\n    play sound [Main Theme \(Title Screen\)   Paper Mario Color Splash OST v] until done\nend\n\nwhen I receive [menu v]\nwait (1) seconds\nglide (1) secs to x: (0) y: (225)\nhide\nwait (1) seconds\nbroadcast (World1 v)\nstop [other scripts in sprite v]\n\nwhen I receive [menu v]\nrepeat (50)\n    change volume by (-2)\nend\n\n@English\n\nwhen I receive [language v]\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\nbroadcast (Language2 v)\n\nwhen flag clicked\nset [ghost v] effect to (100)\ngo to x: (-125) y: (-50)\nshow\n\nwhen I receive [menu v]\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\n\nwhen this sprite clicked\nset [language v] to [English]\nbroadcast (Menu v)\n\nwhen I receive [language2 v]\nforever\n    if <(Language) = [0]> then\n        if <touching (mouse-pointer v)?> then\n            switch costume to (english2 v)\n        else\n            switch costume to (english v)\n        end\n    else\n        switch costume to (english v)\n        stop [this script v]\n    end\nend\n\n@Español\n\nwhen I receive [language v]\nrepeat (25)\n    change [ghost v] effect by (-4)\nend\n\nwhen flag clicked\nset [language v] to [0]\nset [ghost v] effect to (100)\ngo to x: (125) y: (-50)\nshow\n\nwhen I receive [language2 v]\nforever\n    if <(Language) = [0]> then\n        if <touching (mouse-pointer v)?> then\n            switch costume to (español2 v)\n        else\n            switch costume to (español v)\n        end\n    else\n        switch costume to (español v)\n        stop [this script v]\n    end\nend\n\nwhen this sprite clicked\nset [language v] to [Español]\nbroadcast (Menu v)\n\nwhen I receive [menu v]\nrepeat (25)\n    change [ghost v] effect by (4)\nend\nhide\n\n@World\n\nwhen flag clicked\ngo to x: (0) y: (336)\nhide\n\nwhen I receive [world1 v]\nshow\nglide (0.6) secs to x: (0) y: (0)\nbroadcast (Start!! v)\nplay sound [New World v] until done\nwait (2) seconds\nglide (0.6) secs to x: (0) y: (336)\nhide\nset [gameplay v] to [Yes]\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\nwhen I receive [world1 v]\nif <(Language) = [English]> then\n    switch costume to (world1 v)\nelse\n    switch costume to (mundo1 v)\nend\n\nwhen I receive [world2 v]\nif <(Language) = [English]> then\n    switch costume to (world2 v)\nelse\n    switch costume to (mundo2 v)\nend\n\nwhen I receive [world2 v]\nshow\nstart sound [New World v]\nglide (0.6) secs to x: (0) y: (0)\nchange [level v] by (1)\nbroadcast (World2 Starts!! v)\nwait (2) seconds\nglide (0.6) secs to x: (0) y: (336)\nhide\nset [gameplay v] to [Yes]\n\nwhen I receive [final world v]\nshow\nstart sound [New World v]\nglide (0.6) secs to x: (0) y: (0)\nchange [level v] by (1)\nbroadcast (Final Castle!!! v)\nwait (2) seconds\nglide (0.6) secs to x: (0) y: (336)\nhide\nset [gameplay v] to [Yes]\n\nwhen I receive [world2 v]\nif <(Language) = [English]> then\n    switch costume to (world2 v)\nelse\n    switch costume to (mundo2 v)\nend\n\nwhen I receive [final world v]\nif <(Language) = [English]> then\n    switch costume to (world3 v)\nelse\n    switch costume to (mundo3 v)\nend\n\n@Z\n\nwhen flag clicked\ngo to [front v] layer\nhide\n\nwhen I receive [start!! v]\nshow\nforever\n    go to x: (x Mario) y: ((y Mario) + (65))\nend\n\ngo [forward v] (1) layers\n\nwhen I receive [start!! v]\nforever\n    if <<(Level) = [1]> or <(Level) = [4]>> then\n        show\n    else\n        hide\n    end\nend\n\n@Music1\n\nwhen I receive [start!! v]\nwait (1) seconds\nrepeat (25)\n    change volume by (4)\nend\n\nwhen flag clicked\nhide\nset volume to (0) %\n\nwhen I receive [start!! v]\nwait (2) seconds\nforever\n    play sound [Paper Mario Soundtrack March Ahead \(1080p\) v] until done\nend\n\nwhen I receive [world2 v]\nrepeat (50)\n    change volume by (-2)\nend\n\n@Music2\n\nwhen I receive [world2 v]\nwait (1.5) seconds\nrepeat (25)\n    change volume by (4)\nend\n\nwhen flag clicked\nhide\nset volume to (0) %\n\nwhen I receive [world2 v]\nwait (2) seconds\nforever\n    play sound [Desert Overworld   New Super Mario Bros v] until done\nend\n\nwhen I receive [final world v]\nrepeat (50)\n    change volume by (-2)\nend\n\n@Music3\n\nwhen I receive [final world v]\nwait (1.5) seconds\nrepeat (25)\n    change volume by (4)\nend\n\nwhen flag clicked\nhide\nset volume to (0) %\n\nwhen I receive [final world v]\nwait (2) seconds\nforever\n    play sound [Super Mario 3D Land Music AttackFinal Castle theme\[1\] v] until done\nend\n\nrepeat (50)\n    change volume by (-2)\nend\n\nwhen I receive [ending v]\nrepeat (25)\n    change volume by (-4)\nend\n\n@Tutorial\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    if <(Level) = [4]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    go to [back v] layer\nend\n\nwhen flag clicked\nforever\n    if <(Language) = [English]> then\n        switch costume to (walljump v)\n    else\n        switch costume to (saltopared v)\n    end\nend\n\n@Lava Bubble\n\nwhen flag clicked\ngo to x: (-158) y: (-148)\nswitch costume to (lava bubble v)\ngo to [back v] layer\nhide\n\nwhen I receive [new level v]\nforever\n    if <(Level) = [6]> then\n        go to x: (104) y: (63)\n        glide (1.4) secs to x: (-158) y: (-148)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nwait (0.5) seconds\nforever\n    if <(Level) = [9]> then\n        go to x: (-133) y: (132)\n        glide (0.8) secs to x: (-133) y: (-185)\n        go to x: (0) y: (132)\n        glide (0.8) secs to x: (0) y: (-185)\n        go to x: (136) y: (132)\n        glide (0.8) secs to x: (136) y: (-185)\n    else\n        stop [this script v]\n    end\nend\n\ngo to x: (104) y: (63)\n\nwhen I receive [new level v]\nif <(Level) = [9]> then\n    switch costume to (lava bubble2 v)\n    go to x: (-133) y: (132)\nend\n\nwhen I receive [final castle!!! v]\nforever\n    if <(Level) = [20]> then\n        show\n        go to x: (-3) y: (-200)\n        switch costume to (lava bubble3 v)\n        glide (0.5) secs to x: (-3) y: (-30)\n        switch costume to (lava bubble2 v)\n        glide (0.5) secs to x: (-3) y: (-200)\n        hide\n        wait (0.1) seconds\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nif <<(Level) = [6]> or <<(Level) = [9]> or <<(Level) = [20]> or <(Level) = [24]>>>> then\n    show\nelse\n    hide\nend\n\nwhen I receive [new level v]\nwait (0.5) seconds\nforever\n    if <(Level) = [24]> then\n        go to x: (-133) y: (132)\n        glide (0.8) secs to x: (-133) y: (-185)\n        go to x: (0) y: (132)\n        glide (0.8) secs to x: (0) y: (-185)\n        go to x: (136) y: (132)\n        glide (0.8) secs to x: (136) y: (-185)\n    else\n        stop [this script v]\n    end\nend\n\nwhen flag clicked\nforever\n    go to [back v] layer\nend\n\nwhen I receive [new level v]\nforever\n    if <(Level) = [24]> then\n        switch costume to (lava bubble v)\n        go to x: (181) y: (128)\n        glide (1.4) secs to x: (-158) y: (-148)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [ending v]\nstop [other scripts in sprite v]\n\n@New World\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nhide\n\nwhen flag clicked\nforever\n    if <<(Level) = [11]> or <<(Level) = [19]> or <(Level) = [24]>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [24]> then\n        go to x: (204) y: (-24)\n        set size to (40) %\n        set [ghost v] effect to (0)\n        switch costume to (axe v)\n    else\n        go to x: (0) y: (0)\n        set [ghost v] effect to (100)\n        switch costume to (disfraz1 v)\n        set size to (100) %\n    end\nend\n\n@Pokey\n\nwhen flag clicked\ngo to x: (78) y: (-58)\n\nwhen flag clicked\nforever\n    if <<(Level) = [12]> or <<(Level) = [15]> or <<(Level) = [16]> or <(Level) = [23]>>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [world2 starts!! v]\nforever\n    if <(Level) = [12]> then\n        glide (1) secs to x: (130) y: (-58)\n        glide (1) secs to x: (27) y: (-59)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nif <(Level) = [15]> then\n    go to x: (0) y: (-58)\nend\n\nwhen I receive [new level v]\nforever\n    if <(Level) = [16]> then\n        go to x: (57) y: (-115)\n        glide (1) secs to x: (-50) y: (-115)\n        glide (1) secs to x: (57) y: (-115)\n    else\n        stop [this script v]\n    end\nend\n\nwhen I receive [new level v]\nif <(Level) = [16]> then\n    go to [back v] layer\nelse\n    go to [front v] layer\n    stop [this script v]\nend\n\nwhen I receive [new level v]\nif <(Level) = [16]> then\n\nwhen I receive [new level v]\nforever\n    if <(Level) = [23]> then\n        go to x: (26) y: (-108)\n        glide (1) secs to x: (-35) y: (-108)\n        glide (1) secs to x: (26) y: (-108)\n    else\n        stop [this script v]\n    end\nend\n\n@hitbox\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\nforever\n    go to [back v] layer\nend\n\nwhen flag clicked\nforever\n    go to (mario v)\nend\n\nwhen [z v] key pressed\nif <(Gameplay) = [Yes]> then\n    if <touching (platforms v)?> then\n        start sound [Salto v]\n        stop [this script v]\n    end\nend\n\n@Platforms2\n\nwhen flag clicked\nforever\n    if <<(Level) = [13]> or <(Level) = [24]>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [13]> then\n        switch costume to (extra1 v)\n        go to x: (0) y: (185)\n        glide (3) secs to x: (0) y: (-197)\n    end\n    if <(Level) = [24]> then\n        switch costume to (extra2 v)\n        go to x: (55) y: (185)\n        glide (2) secs to x: (55) y: (-197)\n    end\nend\n\nglide (1) secs to x: (0) y: (-197)\n\nhide\nwait (0.2) seconds\nshow\n\nwhen flag clicked\nforever\n    go to [back v] layer\nend\n\nwhen I receive [ending v]\nstop [other scripts in sprite v]\n\n@Fuzzy\n\nwhen flag clicked\nforever\n    if <<(Level) = [14]> or <(Level) = [22]>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    if <(Level) = [14]> then\n        go to x: (46) y: (10)\n        glide (0.5) secs to x: (46) y: (-76)\n        glide (0.5) secs to x: (-40) y: (-76)\n        glide (0.5) secs to x: (-40) y: (10)\n        glide (0.5) secs to x: (46) y: (10)\n    end\n    if <(Level) = [22]> then\n        go to x: (-100) y: (-167)\n        glide (0.5) secs to x: (-100) y: (-90)\n        glide (1) secs to x: (100) y: (-90)\n        glide (0.5) secs to x: (100) y: (-167)\n        glide (0.5) secs to x: (100) y: (-90)\n        glide (1) secs to x: (-100) y: (-90)\n        glide (0.5) secs to x: (-100) y: (-167)\n    end\nend\n\n@Ending\n\nwhen flag clicked\ngo to [front v] layer\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\nshow\n\nwhen I receive [ending v]\ngo to [front v] layer\nwait (1.5) seconds\nrepeat (100)\n    change [ghost v] effect by (-1)\nend\n\nwhen flag clicked\nforever\n    if <(Language) = [English]> then\n        switch costume to (ending v)\n    else\n        switch costume to (final v)\n    end\nend\n\nwhen I receive [ending v]\nwait (1.5) seconds\nforever\n    play sound [Staff Roll   Mario  Luigi Bowser's Inside Story v] until done\n    wait (214) seconds\nend\n\nhide\n\n