Taco Wizard 3 || A Mobile Platformer

Instructions: First, play Taco Wizard 1 and 2 (They're worse quality but explain some things):\nhttps://scratch.mit.edu/projects/376978480/\nhttps://scratch.mit.edu/projects/379937853/\n\n[Arrows] or [WASD] - Move\n[P] - Skip Level\n\nTry to find the easter egg, it's very COOL

@Stage\n\nwhen flag clicked\nswitch backdrop to (intro/win v)\n\nwhen I receive [start animation v]\nswitch backdrop to (secret corndog cutscene v)\n\nwhen I receive [end you win v]\nswitch backdrop to (intro/win v)\nforever\n    play sound [Honeycomb Highway - Sonic Lost World \[OST\] v] until done\nend\n\nwhen I receive [before start v]\nswitch backdrop to (mountains v)\nrepeat (5)\n    play sound [Vexento - Pixel Party v] until done\nend\n\nwhen I receive [before start v]\nrepeat (5)\n    play sound [Sounds of the Boreal Forest.mp3 v] until done\nend\n\n@guy\n\ndefine fast\nrepeat (6)\n    if <touching (levels v)?> then\n        change y by (1)\n    end\nend\n\ndefine xcoll\nrepeat until <not <touching (levels v)?>>\n    if <(x) > [0]> then\n        change x by (-1)\n    else\n        change x by (1)\n    end\nend\n\ndefine ycoll\nrepeat until <not <touching (levels v)?>>\n    if <(y) > [0]> then\n        change y by (-1)\n    else\n        change y by (1)\n    end\nend\n\nwhen I start as a clone\nset [brightness v] effect to (100)\nset size to (35) %\nswitch costume to (trail v)\nrepeat (10)\n    change [ghost v] effect by (10)\n    change size by (-1)\nend\ndelete this clone\n\nwhen I receive [done v]\npoint in direction (90)\ngo to x: (-210) y: (-50)\nset [x v] to [0]\nset [y v] to [0]\nif <(prowiz?) = [1]> then\n    switch costume to (prowiz v)\nelse\n    switch costume to (wiz v)\nend\n\nwhen flag clicked\nhide\n\nwhen I receive [before start v]\nforever\n    if <key (p v) pressed?> then\n        if <(prowiz?) = [1]> then\n            switch costume to (prowiz v)\n        else\n            switch costume to (wiz v)\n        end\n    else\n        switch costume to (jank hitbox v)\n    end\n    if <<touching (bouncy v)?> and <(costume [number v]) = [2]>> then\n        set [bounce v] to [1]\n        set [y v] to [20]\n        if <(prowiz?) = [1]> then\n            switch costume to (prowiz v)\n        else\n            switch costume to (wiz v)\n        end\n        wait () seconds\n        set [bounce v] to [0]\n    end\nend\n\nwhen I receive [before start v]\ngo to [front v] layer\nset [prowiz? v] to [0]\nset [bounce v] to [0]\nset [x v] to [0]\nset [y v] to [0]\nset rotation style [left-right v]\ngo to x: (-210) y: (-50)\nset size to (35) %\npoint in direction (90)\nshow\nforever\n    switch costume to (jank hitbox v)\n    create clone of (_myself_ v)\n    change [y v] by (-1)\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n        point in direction (90)\n        change [x v] by (1)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n        point in direction (-90)\n        change [x v] by (-1)\n    end\n    set [x v] to ((x) * (0.9))\n    change x by (x)\n    if <touching (levels v)?> then\n        fast\n        if <touching (levels v)?> then\n            change y by (-6)\n            xcoll\n            if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n                set [y v] to [13]\n                if <([abs v] of (x) ) = (x)> then\n                    set [x v] to [-8]\n                else\n                    set [x v] to [8]\n                end\n            else\n                set [x v] to [0]\n            end\n        end\n    end\n    change y by (y)\n    if <touching (levels v)?> then\n        ycoll\n        if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> and <(y) < [0]>> then\n            set [y v] to [14]\n        else\n            set [y v] to [0]\n        end\n    end\n    if <touching (bad stuff v)?> then\n        point in direction (90)\n        start sound [Crunch v]\n        set [y v] to [0]\n        set [x v] to [0]\n        go to x: (-210) y: (-50)\n    end\n    if <<<(x position) > [250]> or <key (p v) pressed?>> and <not <([costume # v] of [levels v]) = [20]>>> then\n        broadcast (done v)\n        wait until <not <key (p v) pressed?>>\n    end\n    if <<(x position) > [-20]> and <([costume # v] of [levels v]) = [20]>> then\n        stop [other scripts in sprite v]\n        if <(prowiz?) = [1]> then\n            switch costume to (prowiz v)\n        else\n            switch costume to (wiz v)\n        end\n        repeat (5)\n            stop all sounds\n            wait () seconds\n        end\n        glide (0.5) secs to x: (0) y: (-50)\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        wait (1) seconds\n        broadcast (start animation v)\n        hide\n        stop [this script v]\n    end\n    if <(prowiz?) = [1]> then\n        switch costume to (prowiz v)\n    else\n        switch costume to (wiz v)\n    end\nend\n\n@levels\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [done v]\nnext costume\n\nwhen I receive [start animation v]\nhide\n\nwhen I receive [before start v]\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nshow\n\n@Bad stuff\n\nwhen flag clicked\nhide\n\nwhen I receive [done v]\nnext costume\n\nwhen I receive [start animation v]\nhide\n\nwhen I receive [before start v]\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nshow\n\n@Level shadow\n\nwhen flag clicked\nhide\n\nwhen I receive [done v]\nnext costume\n\nwhen I receive [start animation v]\nhide\n\nwhen I receive [before start v]\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\ngo to [back v] layer\nset [ghost v] effect to (50)\nshow\n\n@bouncy\n\nwhen flag clicked\nhide\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [7]>\ninsert bouncy at [-140] [-50]\nwait until <([costume # v] of [levels v]) = [8]>\ninsert bouncy at [-155] [-50]\nwait until <([costume # v] of [levels v]) = [10]>\ninsert bouncy at [-120] [30]\nwait until <([costume # v] of [levels v]) = [13]>\ninsert bouncy at [-155] [-50]\nwait until <([costume # v] of [levels v]) = [15]>\ninsert bouncy at [-155] [-50]\ninsert bouncy at [15] [40]\nwait until <([costume # v] of [levels v]) = [18]>\ninsert bouncy at [-150] [-50]\ninsert bouncy at [30] [-50]\n\ndefine insert bouncy at (x) (y)\ngo to x: (x) y: (y)\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\nswitch costume to (costume1 v)\nforever\n    if <<(bounce) = [1]> and <touching (guy v)?>> then\n        start sound [Big Boing v]\n        repeat (5)\n            next costume\n        end\n        repeat (5)\n            switch costume to ((costume [number v]) - (1))\n        end\n        wait (0.2) seconds\n    end\nend\n\nwhen I receive [done v]\ndelete this clone\n\n@deco\n\nwhen flag clicked\nhide\n\nwhen I receive [done v]\nnext costume\n\nwhen I receive [start animation v]\nhide\n\nwhen I receive [before start v]\ngo to [back v] layer\ngo to x: (0) y: (0)\nswitch costume to (costume1 v)\nshow\ngo [forward v] (1) layers\n\n@storyline\n\nwhen flag clicked\nhide\n\nwhen I receive [done v]\nnext costume\n\nwhen I receive [start animation v]\nhide\n\nwhen I receive [before start v]\ngo to x: (0) y: (0)\nshow\nswitch costume to (costume1 v)\nrepeat (3)\n    go to [front v] layer\nend\nforever\n    if <touching (guy v)?> then\n        set [ghost v] effect to (70)\n    else\n        set [ghost v] effect to (0)\n    end\nend\n\n@skip\n\nwhen flag clicked\nhide\n\nwhen I receive [start animation v]\nstop [other scripts in sprite v]\nhide\n\nwhen I receive [before start v]\nshow\nset size to (100) %\nset [zine v] to [0]\ngo to x: (-180) y: (-140)\nwait (0) seconds\nforever\n    change [zine v] by (1)\n    point in direction ((90) + (([sin v] of ((zine) * (8)) ) * (3)))\n    if <touching (mouse-pointer v)?> then\n        change size by (((110) - (size)) / (2))\n    else\n        change size by (((100) - (size)) / (4))\n    end\n    if <<touching (mouse-pointer v)?> and <mouse down?>> then\n        repeat until <<not <touching (mouse-pointer v)?>> or <not <mouse down?>>>\n            change [zine v] by (1)\n            point in direction ((90) + (([sin v] of ((zine) * (5)) ) * (3)))\n            change size by (((90) - (size)) / (2))\n        end\n        set size to (100) %\n        wait (0) seconds\n        if <<touching (mouse-pointer v)?> and <not <([costume # v] of [stages v]) = [20]>>> then\n            broadcast (done v)\n        end\n    end\nend\n\nwhen I receive [before start v]\nwait (1) seconds\nwait until <([costume # v] of [levels v]) = [20]>\ngo to x: (4598234759234) y: (32453245234)\nhide\nstop [other scripts in sprite v]\n\n@Rando Bando clouds\n\nwhen flag clicked\nhide\n\nwhen I start as a clone\nset size to (pick random (50) to (80)) %\nshow\ngo to [back v] layer\nset [ghost v] effect to (5)\nswitch costume to (pick random (1) to (4))\nif <(side) = [1]> then\n    go to x: (300) y: (pick random (150) to (100))\n    repeat until <(x position) < [-250]>\n        change x by (-1)\n    end\n    delete this clone\nend\nif <(side) = [2]> then\n    go to x: (-300) y: (pick random (150) to (100))\n    repeat until <(x position) > [250]>\n        change x by (1)\n    end\n    delete this clone\nend\n\nwhen I receive [start animation v]\nstop [other scripts in sprite v]\ndelete this clone\n\nwhen I receive [before start v]\nforever\n    set [side v] to (pick random (1) to (2))\n    create clone of (_myself_ v)\n    wait (pick random (5) to (10)) seconds\nend\n\n@cornboss\n\nwhen flag clicked\nhide\n\nwhen I receive [cdtalk v]\nswitch costume to (corn dog v)\nset size to (120) %\nset rotation style [all around v]\ngo to x: (300) y: (0)\npoint in direction (90)\nshow\nglide (1) secs to x: (140) y: (0)\nsay [Haha, Taco Wizard. I see you have come for your powers?]\nset voice to (tenor v)::tts\nspeak [Haha, Taco Wizard. I see you have come for your powers?]::tts\nsay []\nsay [Well, you better get outta here, because I'm not giving them.]\nset voice to (tenor v)::tts\nspeak [Well, you better get outta here, because I'm not giving them.]::tts\nsay []\nbroadcast (twtalkback v)\n\nwhen I receive [cdtalkback v]\nswitch costume to (surprised v)\nsay [w-w-w-what?]\nset voice to (tenor v)::tts\nspeak [w-w-w-what?]::tts\nsay []\nsay [o-o-ok, you can have them back.]\nset voice to (tenor v)::tts\nspeak [o-o-ok, you can have them back.]::tts\nsay []\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nswitch costume to (costume1 v)\ngo to [back v] layer\npoint towards (animation wiz v)\nglide (0.3) secs to (animation wiz v)\nstart sound [Magic Spell v]\nbroadcast (twtb2 v)\ndelete this clone\n\nwhen I receive [cdfunny v]\nswitch costume to (sad v)\nsay [Dang it, I was using those powers to fry my eggs.]\nset voice to (tenor v)::tts\nspeak [Dang it, I was using those powers to fry my eggs.]::tts\nwait (1) seconds\nsay []\nbroadcast (end you win v)\nhide\n\n@Animation Wiz\n\nwhen flag clicked\nhide\n\nwhen I receive [start animation v]\nsay []\nset size to (90) %\ngo to x: (-300) y: (-60)\npoint in direction (90)\nshow\nglide (1) secs to x: (-160) y: (-60)\nsay [Dang it, narrator. What am I supposed to do?]\nset voice to (giant v)::tts\nspeak [Dang it, narrator. What am I supposed to do?]::tts\nsay []\nsay [I came all the way here to get my powers back, and you tell me we have no plan?]\nset voice to (giant v)::tts\nspeak [I came all the way here to get my powers back, and you tell me we have no plan?]::tts\nsay []\nbroadcast (cdtalk v)\n\nwhen I receive [twtalkback v]\nwait (1) seconds\nsay [Oh yeah? Well if you don't give them back...]\nset voice to (giant v)::tts\nspeak [Oh yeah? Well if you don't give them back...]::tts\nsay []\nsay [I'll step 1 foot closer, and we'll only be 5 feet away!]\nset voice to (giant v)::tts\nspeak [I'll step 1 foot closer, and we'll only be 5 feet away!]::tts\nsay []\nplay sound [Dun Dun Dunnn v] until done\nwait (1) seconds\nbroadcast (cdtalkback v)\n\nwhen I receive [twtb2 v]\npoint in direction (90)\nsay [Well, thank you. Imma head out.]\nset voice to (giant v)::tts\nspeak [Well, thank you. Imma head out.]::tts\nsay []\nset rotation style [left-right v]\npoint in direction (-90)\nstart sound [Ricochet v]\nglide (0.1) secs to x: (-300) y: (-60)\nhide\nwait (2) seconds\nbroadcast (cdfunny v)\n\n@You got your powers back\n\nwhen flag clicked\nhide\n\nwhen I receive [end you win v]\nset [bine v] to [0]\ngo to x: (0) y: (0)\nshow\nforever\n    point in direction ((90) + (([sin v] of ((bine) * (10)) ) * (3)))\n    set size to ((90) + (([sin v] of ((bine) * (15)) ) * (5))) %\n    set y to (([sin v] of ((bine) * (15)) ) * (10))\n    change [bine v] by (1)\nend\n\n@thumb\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    show\n    set [ghost v] effect to (100)\n    go to [front v] layer\nend\n\n@Intro\n\nwhen I start as a clone\nif <(size) = [70]> then\n    show\n    go to x: (0) y: (-110)\n    set [ghost v] effect to (100)\n    set size to (100) %\n    go to [front v] layer\n    switch costume to (corpcooga v)\n    repeat (5)\n        change [ghost v] effect by (-20)\n    end\n    wait (0.5) seconds\n    repeat (10)\n        wait (0.01) seconds\n        change [ghost v] effect by (10)\n    end\nend\n\nwhen flag clicked\nwait until <mouse down?>\nwait until <not <mouse down?>>\nstop all sounds\nstart sound [Teleport v]\nhide\nbroadcast (before start v)\nstop [other scripts in sprite v]\ndelete this clone\n\nwhen flag clicked\nset volume to (100) %\nstart sound [Intro music v]\nshow\ngo to [front v] layer\ngo to x: (-240) y: (0)\npoint in direction (-150)\nswitch costume to (op v)\nset [ghost v] effect to (100)\nset [vel v] to [30]\nset size to (30) %\nrepeat until <(x position) = [0]>\n    change x by (vel)\n    turn right (vel) degrees\n    change [ghost v] effect by ((vel) * (-0.5))\n    change size by ((vel) / (6))\n    change [vel v] by (-2)\nend\nset size to (71) %\ncreate clone of (_myself_ v)\nset size to (70) %\ncreate clone of (_myself_ v)\nrepeat (15)\n    set [bounce v] to (((bounce) * (0.7)) + ((80.5) - (size)))\n    change size by (bounce)\nend\nset size to (80) %\nwait (0.2) seconds\npoint in direction (90)\nset [sine v] to [0]\nrepeat (15)\n    point in direction ((90) + (([tan v] of ((sine) * (8)) ) * (10)))\nend\npoint in direction (90)\nset [size vel v] to [18]\nrepeat until <(size vel) < [2]>\n    change [size vel v] by (-2)\n    change size by (size vel)\n    turn left ((size vel) * (4)) degrees\nend\nset [sine v] to [0]\nrepeat until <(x position) < [0]>\n    set x to (([tan v] of ((sine) * (8)) ) * (20))\n    turn right (([tan v] of ((sine) * (8)) ) * (20)) degrees\nend\nrepeat until <(x position) > [0]>\n    set x to (([tan v] of ((sine) * (8)) ) * (20))\n    turn right (((90) - (direction)) / (3)) degrees\nend\nrepeat until <(size vel) < [-17]>\n    change [size vel v] by (-2)\n    change size by ((size vel) / (1.25))\n    turn left ((size vel) * (4)) degrees\nend\npoint in direction (90)\nset x to (0)\nwait (0.5) seconds\ncreate clone of (_myself_ v)\nwait (0.9) seconds\nhide\nwait (1) seconds\nstop [other scripts in sprite v]\nbroadcast (before start v)\n\nwhen I start as a clone\nif <(size) = [80]> then\n    set [sizevel v] to [30]\n    go to x: (0) y: (0)\n    switch costume to (costume1 v)\n    set size to (30) %\n    show\n    go to [front v] layer\n    repeat (30)\n        switch costume to (hax v)\n        change size by (sizevel)\n        change [sizevel v] by (-1)\n        switch costume to (costume1 v)\n    end\n    delete this clone\nend\n\nwhen I start as a clone\nif <(size) = [71]> then\n    set size to (100) %\n    go to [front v] layer\n    switch costume to (poof-0 v)\n    repeat (13)\n        wait (0.005) seconds\n        next costume\n    end\n    delete this clone\nend\n\nwhen flag clicked\nforever\n    change [sine v] by (1)\nend\n\nwhen I start as a clone\nforever\n    if <mouse down?> then\n        delete this clone\n    end\nend\n\n