Generic Platformer
@Stage\n\nwhen flag clicked\nforever\n    wait until <(Level) = [4]>\n    broadcast (level4 v)\n    wait until <(Level) = [5]>\n    broadcast (level5 v)\n    wait until <(Level) = [6]>\n    broadcast (level6 v)\n    wait until <(Level) = [7]>\n    broadcast (level 7 v)\n    wait until <(Level) = [8]>\n    broadcast (level 8 v)\n    wait until <(Level) = [9]>\n    broadcast (level 9 v)\n    wait until <(Level) = [15]>\n    broadcast (level 15 v)\n    wait until <(Level) = [17]>\n    broadcast (level 17 v)\n    wait until <(Level) = [18]>\n    broadcast (level 18 v)\n    wait until <(Level) = [19]>\n    broadcast (level 19 v)\n    wait until <(Level) = [24]>\n    broadcast (level 24 v)\n    wait until <(Level) = [26]>\n    broadcast (level 26 v)\n    wait until <(Level) = [40]>\n    broadcast (level 40 v)\nend\n\nwhen flag clicked\nswitch backdrop to (normal screen v)\nwait (3) seconds\nforever\n    if <<not <(Level) = [???]>> and <not <(Level) = [RICKROLLED!!!]>>> then\n        play sound [054 Emergence Cave \(Olimar\)  v] until done\n    end\nend\n\nwhen I receive [next level secret v]\nstop all sounds\nforever\n    if <<not <(Level) = [RICKROLLED!!!]>> and <not <(Level) < [100]>>> then\n        switch backdrop to (secret screen v)\n        play sound [toby fox - UNDERTALE Soundtrack - 47 Ooo2 v] until done\n    end\nend\n\nwhen I receive [level up v]\nswitch backdrop to (normal screen v)\n\nstop all sounds\n\nwhen I receive [the end v]\nstop [other scripts in sprite v]\nstop all sounds\nstart sound [In My Way v]\nwait (3) seconds\nswitch backdrop to (the end v)\nwait (7) seconds\nswitch backdrop to (garbnok v)\nwait (3) seconds\nbroadcast (end v)\n\nstop [all v]\n\nwhen I receive [pain v]\nwait (1) seconds\nstop all sounds\nset volume to (999) %\nplay sound [health drain v] until done\nwait (1) seconds\nswitch backdrop to (the end v)\nforever\n    play sound [But Nobody Came v] until done\nend\n\nplay sound [health drain v] until done\nwait (.01) seconds\nplay sound [health drain v] until done\nwait (.01) seconds\nplay sound [health drain v] until done\nwait (.01) seconds\nplay sound [health drain v] until done\nwait (.01) seconds\nrepeat (30)\n    wait (.1) seconds\n    start sound [health drain v]\nend\nrepeat (40)\n    wait (.01) seconds\n    start sound [health drain v]\nend\nwait (1) seconds\n\nrepeat ()\n\n@dood\n\nwhen I receive [ded v]\nset [inverted v] to [0]\ndelete this clone\n\nwhen I start as a clone\nswitch costume to (dood black v)\nrepeat (10)\n    change [ghost v] effect by (10)\n    change size by (-5)\n    change y by (-1)\nend\ndelete this clone\n\nwhen flag clicked\nforever\n    if <(exploding) = [0]> then\n        create clone of (_myself_ v)\n    end\nend\n\ndefine fast\nrepeat (6)\n    if <touching (platforms v)?> then\n        change y by (1)\n    end\nend\n\nwhen flag clicked\nswitch costume to (dood v)\nset [x v] to [0]\nset [y v] to [0]\nset [deaths v] to [0]\nset [coins v] to [0]\nset [inverted v] to [0]\nhide variable [coins v]\nhide variable [deaths v]\nhide\nwait (3) seconds\ngo to x: (-220) y: (-125)\nshow\nwait (1.521) seconds\ngo to [front v] layer\nforever\n    change [y v] by (-1)\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> and <(inverted) = [0]>> then\n        change [x v] by (1.2)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> and <(inverted) = [0]>> then\n        change [x v] by (-1.2)\n    end\n    if <<<key (right arrow v) pressed?> or <key (d v) pressed?>> and <(inverted) = [1]>> then\n        change [x v] by (-1.2)\n    end\n    if <<<key (left arrow v) pressed?> or <key (a v) pressed?>> and <(inverted) = [1]>> then\n        change [x v] by (1.2)\n    end\n    set [x v] to ((x) * (.9))\n    change x by (x)\n    if <touching (platforms v)?> then\n        fast\n        if <touching (platforms v)?> then\n            change y by (-6)\n            xcoll\n            if <<key (up arrow v) pressed?> or <key (w v) pressed?>> then\n                set [y v] to [12]\n                if <([abs v] of (x) ) = (x)> then\n                    change [x v] by (-8)\n                else\n                    change [x v] by (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 (platforms v)?> then\n        ycoll\n        if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <(y) < [0]>> then\n            set [y v] to [13]\n        else\n            set [y v] to [0]\n        end\n    end\n    if <(x position) > [230]> then\n        change [level v] by (1)\n        go to x: (-220) y: (-125)\n        broadcast (Level Up v)\n    end\n    if <<(y position) < [-172]> or <(y position) = [-172]>> then\n        set [x v] to [0]\n        set [y v] to [0]\n        go to x: (-220) y: (-125)\n        start sound [health drain v]\n        change [deaths v] by (1)\n        broadcast (ded v)\n    end\n    if <touching (b̶o̶m̶b̶s̶ coins v)?> then\n        start sound [explbomb v]\n        set [exploding v] to [1]\n        switch costume to (11 v)\n        repeat (24)\n            next costume\n        end\n        if <(Level) = [4]> then\n            set [oof v] to [1]\n        end\n        switch costume to (dood v)\n        set [x v] to [0]\n        set [y v] to [0]\n        go to x: (-220) y: (-125)\n        change [deaths v] by (1)\n        set [exploding v] to [0]\n        broadcast (ded v)\n    end\n    if <(exploding) = [1]> then\n        repeat until <(exploding) = [0]>\n            delete this clone\n        end\n    end\n    if <<(Coins) = [1]> and <(Level) = [20]>> then\n        if <<(x position) < [-239]> and <(y position) > [140]>> then\n            broadcast (next level secret v)\n            set [level v] to [???]\n            go to x: (190) y: (-135)\n        end\n    end\n    if <(Level) = [???]> then\n        if <(x position) < [-239]> then\n            broadcast (next level secret v)\n            go to x: (190) y: (-135)\n            set [coins v] to [0]\n        end\n    end\n    if <<touching (the one coin v)?> and <<(costume [number v]) = [1]> or <<(costume [number v]) = [2]> or <(costume [number v]) = [3]>>>> then\n        set [coins v] to [1]\n        broadcast (coin v)\n        play sound [Coin v] until done\n    end\nend\n\ndefine ycoll\nrepeat until <not <touching (platforms v)?>>\n    if <(y) > [0]> then\n        change y by (-1)\n    else\n        change y by (1)\n    end\nend\n\ndefine xcoll\nrepeat until <not <touching (platforms v)?>>\n    if <(x) > [0]> then\n        change x by (-1)\n    else\n        change x by (1)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (spikes v)?> then\n        start sound [Big Boing v]\n        set [y v] to [18]\n    end\n    if <touching (lava v)?> then\n        set [y v] to [0]\n        set [x v] to [0]\n        go to x: (-220) y: (-125)\n        start sound [health drain v]\n        change [deaths v] by (1)\n        broadcast (ded v)\n        if <(Level) = [10]> then\n            set [oof v] to [2]\n        end\n        if <<(Level) = [12]> and <(oof) = [2]>> then\n            set [oof v] to [3]\n        end\n    end\n    if <touching (wall/floor lava v)?> then\n        set [y v] to [0]\n        set [x v] to [0]\n        go to x: (-220) y: (-125)\n        start sound [health drain v]\n        change [deaths v] by (1)\n        broadcast (ded v)\n        if <(Level) = [14]> then\n            set [oof v] to [4]\n        end\n    end\nend\n\nwhen flag clicked\nforever\n    if <<<<not <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<key (left arrow v) pressed?> or <key (a v) pressed?>>>>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <not <(y) < [0]>>> and <(exploding) = [0]>> then\n        switch costume to (dood v)\n    end\nend\n\nwhen flag clicked\nset [exploding v] to [0]\nwait (4.521) seconds\nforever\n    if <<<<<key (right arrow v) pressed?> or <key (d v) pressed?>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <(inverted) = [0]>> and <(exploding) = [0]>> then\n        switch costume to (dood right v)\n    end\n    if <<<<<key (right arrow v) pressed?> or <key (d v) pressed?>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <(exploding) = [0]>> and <(inverted) = [1]>> then\n        switch costume to (dood left v)\n    end\n    if <<<<<key (left arrow v) pressed?> or <key (a v) pressed?>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <(inverted) = [0]>> and <(exploding) = [0]>> then\n        switch costume to (dood left v)\n    end\n    if <<<<<key (left arrow v) pressed?> or <key (a v) pressed?>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <(inverted) = [1]>> and <(exploding) = [0]>> then\n        switch costume to (dood right v)\n    end\n    if <<<<key (up arrow v) pressed?> or <key (w v) pressed?>> and <not <touching (b̶o̶m̶b̶s̶ coins v)?>>> and <(exploding) = [0]>> then\n        switch costume to (dood up v)\n    end\n    if <<<<<key (up arrow v) pressed?> and <key (right arrow v) pressed?>> or <<key (w v) pressed?> and <key (d v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [0]>>> and <(exploding) = [0]>> then\n        switch costume to (dood up right v)\n    end\n    if <<<<<key (up arrow v) pressed?> and <key (left arrow v) pressed?>> or <<key (w v) pressed?> and <key (a v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [0]>>> and <(exploding) = [0]>> then\n        switch costume to (dood up left v)\n    end\n    if <<<<<key (up arrow v) pressed?> and <key (right arrow v) pressed?>> or <<key (w v) pressed?> and <key (d v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [1]>>> and <(exploding) = [0]>> then\n        switch costume to (dood up left v)\n    end\n    if <<<<<key (up arrow v) pressed?> and <key (left arrow v) pressed?>> or <<key (w v) pressed?> and <key (a v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [1]>>> and <(exploding) = [0]>> then\n        switch costume to (dood up right v)\n    end\n    if <<<<<(y) < [0]> and <key (right arrow v) pressed?>> or <<(y) < [0]> and <key (d v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [0]>>> and <(exploding) = [0]>> then\n        switch costume to (dood down right v)\n    end\n    if <<<<<(y) < [0]> and <key (left arrow v) pressed?>> or <<(y) < [0]> and <key (a v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [0]>>> and <(exploding) = [0]>> then\n        switch costume to (dood down left v)\n    end\n    if <<<<<(y) < [0]> and <key (right arrow v) pressed?>> or <<(y) < [0]> and <key (d v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [1]>>> and <(exploding) = [0]>> then\n        switch costume to (dood down left v)\n    end\n    if <<<<<(y) < [0]> and <key (left arrow v) pressed?>> or <<(y) < [0]> and <key (a v) pressed?>>> and <<not <touching (b̶o̶m̶b̶s̶ coins v)?>> and <(inverted) = [1]>>> and <(exploding) = [0]>> then\n        switch costume to (dood down right v)\n    end\n    if <<<(y) < [0]> and <<not <key (right arrow v) pressed?>> and <<not <key (left arrow v) pressed?>> and <<not <key (d v) pressed?>> and <not <key (a v) pressed?>>>>>> and <(exploding) = [0]>> then\n        switch costume to (dood down v)\n    end\nend\n\nwhen I receive [level up v]\ngo to x: (-215) y: (-125)\nset [inverted v] to [0]\ndelete this clone\n\nwhen I receive [rickrolled!!! v]\nhide variable [level v]\nhide variable [deaths v]\nhide variable [coins v]\n\nwhen I receive [next level secret v]\nset [inverted v] to [0]\ndelete this clone\n\nwhen I receive [next level secret v]\nset [x v] to [0]\nset [y v] to [0]\n\nwhen I receive [level up v]\nset [x v] to [0]\nset [y v] to [0]\n\nwhen I receive [the end v]\nwait (3) seconds\nstop [other scripts in sprite v]\nforever\n    hide\nend\n\nset x to (231)\n\nwhen flag clicked\nforever\n    if <key (r v) pressed?> then\n        broadcast (Level Up v)\n    end\nend\n\nset [level v] to [20]\nbroadcast (Level Up v)\n\nset [level v] to [40]\nbroadcast (Level Up v)\n\n@platforms\n\nwhen flag clicked\nset [level v] to [1]\nhide\nhide variable [level v]\nwait (3) seconds\nshow\ngo to x: (0) y: (0)\nforever\n    if <<(Level) = [41]> or <(Level) < [41]>> then\n        switch costume to (Level)\n    else\n        if <<(Level) = [???]> or <(Level) = [RICKROLLED!!!]>> then\n            switch costume to (secret v)\n        else\n            switch costume to (out of bounds v)\n        end\n    end\nend\n\nwhen I receive [next level secret v]\n\nset [level v] to [19]\nset [coins v] to [1]\n\nset [level v] to [22]\n\nset [level v] to [39]\n\nwhen I receive [the end v]\nwait (3) seconds\nforever\n    switch costume to (costume1 v)\nend\n\n@thumbnail \n\nwhen flag clicked\nset [ghost v] effect to (0)\nshow\ngo to [front v] layer\nwait (3) seconds\nrepeat (40)\n    change [ghost v] effect by (3)\nend\nhide\n\nwhen I receive [the end v]\nforever\n    hide\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\n@spikes\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [level 8 v]\nshow\ngo to x: (-123) y: (-162)\ncreate clone of (_myself_ v)\ngo to x: (-89) y: (-162)\ncreate clone of (_myself_ v)\ngo to x: (-56) y: (-162)\ncreate clone of (_myself_ v)\ngo to x: (67) y: (-24)\nwait until <(Level) = [9]>\nhide\n\nwhen I receive [level 9 v]\nshow\ngo to x: (-161) y: (-116)\nwait until <(Level) = [10]>\nhide\n\nwhen I receive [level 15 v]\nshow\ngo to x: (-148) y: (-132)\nwait until <(Level) = [16]>\nhide\n\nwhen I receive [level up v]\ndelete this clone\n\nwhen I receive [level up v]\ndelete this clone\n\nwhen I receive [level 18 v]\nshow\ngo to x: (10) y: (-5)\nwait until <(Level) = [19]>\nhide\n\nwhen I receive [level 19 v]\nswitch costume to (costume2 v)\nshow\ngo to x: (5) y: (-138)\nwait until <(Level) = [20]>\nhide\n\nwhen I receive [level 26 v]\nswitch costume to (costume3 v)\nshow\ngo to x: (5) y: (-138)\nwait until <(Level) = [27]>\nhide\n\n@b̶o̶m̶b̶s̶ coins\n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\n\nwhen I receive [level4 v]\nshow\ngo to x: (-114) y: (-77)\ncreate clone of (_myself_ v)\ngo to x: (115) y: (-77)\ncreate clone of (_myself_ v)\ngo to x: (2) y: (-13)\ncreate clone of (_myself_ v)\nhide\n\nwhen I receive [level 7 v]\nhide\n\nwhen I receive [level5 v]\nshow\ngo to x: (-100) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (7) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (115) y: (-135)\ncreate clone of (_myself_ v)\nhide\n\nwhen I receive [level6 v]\nshow\ngo to x: (-90) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (-50) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (-11) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (30) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (143) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (179) y: (-135)\ncreate clone of (_myself_ v)\ngo to x: (214) y: (-135)\ncreate clone of (_myself_ v)\nhide\n\nwhen I receive [level 17 v]\nshow\ngo to x: (-77) y: (-88)\ncreate clone of (_myself_ v)\ngo to x: (50) y: (-31)\ncreate clone of (_myself_ v)\ngo to x: (197) y: (18)\ncreate clone of (_myself_ v)\nhide\n\nwhen I receive [level up v]\ndelete this clone\n\nwhen I receive [level 18 v]\nshow\ngo to x: (-129) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (-91) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (-5) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (32) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (143) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (68) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (107) y: (-137)\ncreate clone of (_myself_ v)\ngo to x: (182) y: (-137)\ncreate clone of (_myself_ v)\nhide\nwait until <(Level) = [19]>\n\nwhen I receive [level 19 v]\n\nwhen flag clicked\n\nwhen I start as a clone\nforever\n    switch costume to (costume1 v)\n    repeat (6)\n        next costume\n    end\nend\n\nwhen I start as a clone\nforever\n\nforever\n\nswitch costume to (costume1 v)\nrepeat (6)\n    next costume\nend\n\nwhen I receive [level 19 v]\nshow\ngo to x: (-216) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-185) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-155) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-124) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-91) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-50) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (-5) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (32) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (143) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (68) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (107) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (182) y: (15)\ncreate clone of (_myself_ v)\ngo to x: (221) y: (15)\ncreate clone of (_myself_ v)\nhide\n\nshow\n\nswitch costume to (costume line v)\nshow\ngo to x: (25) y: (15)\nwait until <(Level) = [20]>\n\nrepeat (16)\nend\n\nwhen I receive [level 24 v]\nshow\ngo to x: (-124) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (-91) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (-50) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (-5) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (32) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (143) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (68) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (107) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (182) y: (-170)\ncreate clone of (_myself_ v)\ngo to x: (221) y: (-170)\ncreate clone of (_myself_ v)\nhide\n\nswitch costume to (costume line2 v)\ngo to x: (25) y: (15)\nwait until <(Level) = [25]>\n\nwait until <(Level) = [18]>\n\nchange [level v] by (1)\nbroadcast (Level Up v)\n\n@unhelpful narrator\n\nwhen flag clicked\nset [oof v] to [0]\nset [secret v] to [0]\nhide variable [secret v]\nswitch costume to (costume1 v)\ngo to x: (0) y: (104)\nhide\nwait (3) seconds\ngo to [front v] layer\ngo [backward v] (2) layers\nshow\nforever\n    if <<(Level) = [4]> and <(oof) = [1]>> then\n        switch costume to (coins are bad v)\n    end\n    if <<(Level) = [10]> and <(oof) = [2]>> then\n        switch costume to (bro v)\n    end\n    if <<(Level) = [12]> and <(oof) = [2]>> then\n        switch costume to (careful v)\n    end\n    if <<(Level) = [12]> and <(oof) = [3]>> then\n        switch costume to (... v)\n    end\n    if <<(Level) = [14]> and <(oof) = [4]>> then\n        switch costume to (and v)\n    end\n    if <(Level) = [???]> then\n        hide\n    end\nend\n\nwhen I receive [level up v]\nshow\nif <(Level) < [41]> then\n    switch costume to (Level)\nend\n\nwhen I receive [the end v]\nswitch costume to (costume41 v)\nwait (3) seconds\nhide\n\nforever\n\nwhen I receive [pain v]\nwait (10) seconds\nshow\nswitch costume to (what did i tell you v)\n\n@Lava\n\nwhen flag clicked\nforever\n    go to x: (0) y: ((5.5) * ([sin v] of (((timer) * (2)) * (150)) ))\n    go to [back v] layer\n    if <<(Level) = [41]> or <(Level) < [41]>> then\n        switch costume to (Level)\n    else\n        switch costume to (1 v)\n    end\nend\n\n@wall/floor lava\n\nwhen flag clicked\nforever\n    if <<(Level) = [41]> or <(Level) < [41]>> then\n        switch costume to (Level)\n    else\n        switch costume to (costume1 v)\n    end\nend\n\n@Fake Platforms\n\nwhen flag clicked\nshow\nforever\n    if <<(Level) = [41]> or <(Level) < [41]>> then\n        switch costume to (Level)\n    else\n        switch costume to (1 v)\n    end\nend\n\n@the one coin\n\nwhen flag clicked\nhide\nforever\n    if <not <(Level) = [18]>> then\n        hide\n    end\nend\n\nif <touching (dood v)?> then\n    set [coins v] to [1]\n    broadcast (coin v)\nend\n\nplay sound [Coin v] until done\n\nwhen I receive [level 18 v]\nshow\ngo to x: (-48) y: (-137)\n\nwhen I receive [coin v]\nhide\n\nwhen flag clicked\nforever\n    next costume\nend\n\n@rick-roll\n\nwhen flag clicked\nhide\nset size to (150) %\ngo to [back v] layer\nswitch costume to (rick-roll v)\n\nwhen I receive [rickrolled!!! v]\ngo to [front v] layer\nshow\nset [level v] to [RICKROLLED!!!]\nchange [☁ secrets got v] by (1)\nstart sound [rick-astley-never-gonna-give-you-up-official-music-video v]\nrepeat (35)\n    repeat (147)\n        next costume\n    end\nend\nhide\nbroadcast (Level Up v)\nset [level v] to [20]\n\nset [coins v] to [0]\n\n@secret unhelpful narrator \n\nwhen flag clicked\nswitch costume to (costume1 v)\nhide\nforever\n    if <(Level) = [???]> then\n        show\n    end\nend\n\nwhen I receive [next level secret v]\nnext costume\n\nwhen I receive [level up v]\nhide\nswitch costume to (costume1 v)\n\nwhen flag clicked\nwait until <(costume [number v]) = [6]>\nhide\nbroadcast (RICKROLLED!!! v)\n\n@cringe\n\nwhen flag clicked\nhide\ngo to x: (0) y: (0)\nforever\n    if <<not <(Level) = [RICKROLLED!!!]>> and <<(Level) < [41]> and <not <(Level) = [41]>>>> then\n        wait (pick random (50) to (90)) seconds\n        start sound [pop v]\n        go to [front v] layer\n        show\n        wait (3) seconds\n        hide\n    end\nend\n\nwhen I receive [the end v]\nstop [other scripts in sprite v]\nforever\n    hide\nend\n\n@text theing\n\ndefine * Specific Print: (text) X (x) Y (y) Size (size) Color (color) Brightness (brightness) X Border (x border) Letter Spacing (letter spacing) Line Spacing (line spacing) Use FX? (use fx?) Immediate? (immediate?) Direction (direction)\nif <(immediate?) = [1]> then\n    Fast Print (text) (x) (y) (size) (color) (brightness) (x border) (letter spacing) (line spacing) (use fx?) (direction)\nelse\n    Slow Print (text) (x) (y) (size) (color) (brightness) (x border) (letter spacing) (line spacing) (use fx?) (direction)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nshow\nset [clone x v] to (x position)\nset [clone y v] to (y position)\nset [clone dir v] to (direction)\nset [clone size v] to (size)\nif <(Use FX?) = [0]> then\n    stop [this script v]\nend\nif <((Mouse Ghost) + ((Toward Mouse) + ((Away Mouse) + ((Mouse Bulge) + ((Sin Wave) + ((Rainbow) + ((Sway) + ((Spin) + (Jiggle))))))))) = [0]> then\n    stop [this script v]\nend\nforever\n    change [clone variable v] by (((FX Intensity) * (40)) - ((distance to [mouse-pointer v]) * (4)))\n    set [clone variable v] to ((Clone Variable) * (0.5))\n    if <(Clone Variable) > [100]> then\n        set [clone variable v] to [100]\n    end\n    if <(Mouse Ghost) = [1]> then\n        set [ghost v] effect to ((FX Intensity) * ((0.5) * ((50) - (distance to [mouse-pointer v]))))\n    end\n    if <(Toward Mouse) = [1]> then\n        if <<(distance to [mouse-pointer v]) < [50]> and <(distance to [mouse-pointer v]) > [0]>> then\n            point towards (mouse-pointer v)\n            move ((Clone Variable) * ((0.005) * (distance to [mouse-pointer v]))) steps\n            point in direction (Clone Dir)\n        end\n        change x by (((Clone X) - (x position)) * (0.5))\n        change y by (((Clone Y) - (y position)) * (0.5))\n    end\n    if <(Away Mouse) = [1]> then\n        if <<(distance to [mouse-pointer v]) < [50]> and <(distance to [mouse-pointer v]) > [0]>> then\n            point towards (mouse-pointer v)\n            move ((Clone Variable) * ((-0.005) * ((50) - (distance to [mouse-pointer v])))) steps\n            point in direction (Clone Dir)\n        end\n        change x by (((Clone X) - (x position)) * (0.5))\n        change y by (((Clone Y) - (y position)) * (0.5))\n    end\n    if <(Mouse Bulge) = [1]> then\n        if <(distance to [mouse-pointer v]) < [50]> then\n            change size by (((FX Intensity) * ((0.1) * ((50) - (distance to [mouse-pointer v])))) * ((Clone Size) / (100)))\n        end\n        set size to ((((size) - (Clone Size)) * (0.8)) + (Clone Size)) %\n    end\n    if <(Sin Wave) = [1]> then\n        set y to ((Clone Y) + (([sin v] of ((i) * ((FX Speed) * (3))) ) * ((FX Intensity) * (1))))\n    end\n    if <(Jiggle) = [1]> then\n        set y to ((Clone Y) + (([cos v] of ((i) * ((FX Speed) * (15))) ) * ((FX Intensity) * (0.3))))\n        set x to ((Clone X) + (([sin v] of ((i) * ((FX Speed) * (15))) ) * ((FX Intensity) * (0.3))))\n    end\n    if <(Sway) = [1]> then\n        point in direction ((Clone Dir) + (([sin v] of ((i) * ((FX Speed) * (1))) ) * ((FX Intensity) * (3.5))))\n    end\n    if <(Spin) = [1]> then\n        change [clone dir v] by (FX Speed)\n        point in direction (Clone Dir)\n    end\n    if <(Rainbow) = [1]> then\n        set [color v] effect to ((i) * ((FX Speed) * (0.5)))\n    end\n    change [i v] by (1)\nend\n\nwhen I receive [clear text v]\ndelete this clone\n\nwhen flag clicked\nbroadcast (Clear Text v)\nHide Variables\n\ndefine Set Character Spacing: (character spacing) Line Spacing: (line spacing)\nset [letter width v] to (character spacing)\nset [line width v] to (line spacing)\n\ndefine * Special Effects Settings (1 = on, 0 = off): Mouse Ghost (mouse ghost) Toward Mouse (toward mouse) Away Mouse (away mouse) Mouse Bulge (mouse bulge) Sin Wave (sin wave) Rainbow (rainbow) Sway (sway) Spin (spin) Jiggle (jiggle) FX Intensity (fx intensity) FX Speed (fx speed)\nset [mouse ghost v] to (mouse ghost)\nset [toward mouse v] to (toward mouse)\nset [away mouse v] to (away mouse)\nset [mouse bulge v] to (mouse bulge)\nset [sin wave v] to (sin wave)\nset [rainbow v] to (rainbow)\nset [sway v] to (sway)\nset [spin v] to (spin)\nset [jiggle v] to (jiggle)\nset [fx intensity v] to (fx intensity)\nset [fx speed v] to (fx speed)\n\ndefine Fast Print (text) (x) (y) (size) (color) (brightness) (x border) (letter spacing) (line spacing) (use fx?) (direction)\nif <(use fx?) = [1]> then\n    set [use fx? v] to [1]\nelse\n    set [use fx? v] to [0]\nend\npoint in direction (direction)\ngo to x: (x) y: (y)\nswitch costume to (a v)\nset size to (size) %\nset [brightness v] effect to (brightness)\nset [color v] effect to (color)\nhide\nset [j v] to [1]\nrepeat ((length of (text)) / (1))\n    set [v v] to [0]\n    switch costume to (join [] (letter (j) of (text)))\n    switch costume to (join (letter (j) of (text)) [-a])\n    create clone of (_myself_ v)\n    if <<(x position) > (x border)> and <(costume [name v]) = [ ]>> then\n        set [v v] to [1]\n    end\n    if <<(join [] (letter ((j) + (1)) of (text))) = [ ]> or <(join [] (letter ((j) + (1)) of (text))) = []>> then\n        change x by ((((9) + (item (costume [number v]) of [letter spacing \(by costume #\) v])) / (2)) * (((size) * (0.014)) * (letter spacing)))\n    else\n        set [+ v] to (item (costume [number v]) of [letter spacing \(by costume #\) v])\n        switch costume to (join [] (letter ((j) + (1)) of (text)))\n        switch costume to (join (letter ((j) + (1)) of (text)) [-a])\n        change x by ((((+) + (item (costume [number v]) of [letter spacing \(by costume #\) v])) / (2)) * (((size) * (0.014)) * (letter spacing)))\n    end\n    if <(v) = [1]> then\n        change y by (((size) * (-0.25)) * (line spacing))\n        set x to (x)\n    end\n    switch costume to (control v)\n    change [j v] by (1)\n    change [i v] by (-1)\nend\n\ndefine Slow Print (text) (x) (y) (size) (color) (brightness) (x border) (letter spacing) (line spacing) (use fx?) (direction)\nif <(use fx?) = [1]> then\n    set [use fx? v] to [1]\nelse\n    set [use fx? v] to [0]\nend\npoint in direction (direction)\ngo to x: (x) y: (y)\nswitch costume to (a v)\nset size to (size) %\nset [brightness v] effect to (brightness)\nset [color v] effect to (color)\nhide\nset [j v] to [1]\nrepeat ((length of (text)) / (1))\n    set [v v] to [0]\n    switch costume to (join [] (letter (j) of (text)))\n    switch costume to (join (letter (j) of (text)) [-a])\n    create clone of (_myself_ v)\n    if <<(x position) > (x border)> and <(costume [name v]) = [ ]>> then\n        set [v v] to [1]\n    end\n    if <<(join [] (letter ((j) + (1)) of (text))) = [ ]> or <(join [] (letter ((j) + (1)) of (text))) = []>> then\n        change x by ((((9) + (item (costume [number v]) of [letter spacing \(by costume #\) v])) / (2)) * (((size) * (0.014)) * (letter spacing)))\n    else\n        set [+ v] to (item (costume [number v]) of [letter spacing \(by costume #\) v])\n        switch costume to (join [] (letter ((j) + (1)) of (text)))\n        switch costume to (join (letter ((j) + (1)) of (text)) [-a])\n        change x by ((((+) + (item (costume [number v]) of [letter spacing \(by costume #\) v])) / (2)) * (((size) * (0.014)) * (letter spacing)))\n    end\n    if <(v) = [1]> then\n        change y by (((size) * (-0.25)) * (line spacing))\n        set x to (x)\n    end\n    switch costume to (control v)\n    change [j v] by (1)\nend\n\ndefine * Reset\nset [size v] to [100]\nset [direction v] to [90]\nset [color v] to [0]\nset [brightness v] to [0]\nset [x border v] to [220]\nset [letter width v] to [1]\nset [line width v] to [1]\nset [fx intensity v] to [5]\nset [fx speed v] to [5]\nset [print immediately? v] to [0]\nset [mouse ghost v] to [0]\nset [toward mouse v] to [0]\nset [away mouse v] to [0]\nset [mouse bulge v] to [0]\nset [sin wave v] to [0]\nset [rainbow v] to [0]\nset [sway v] to [0]\nset [spin v] to [0]\nset [jiggle v] to [0]\n\ndefine * Open Variable Editor\nstop [other scripts in sprite v]\nbroadcast (Clear Text v)\nShow Variables\nrepeat until <key (e v) pressed?>\n    * Specific Print: [Press T to test] X [60] Y [-147] Size [65] Color [0] Brightness [-100] X Border [240] Letter Spacing [1] Line Spacing [1] Use FX? [0] Immediate? [0] Direction [90]\n    * Specific Print: [Press E to exit] X [60] Y [-167] Size [65] Color [0] Brightness [-100] X Border [240] Letter Spacing [1] Line Spacing [1] Use FX? [0] Immediate? [0] Direction [90]\n    wait until <<key (t v) pressed?> or <key (e v) pressed?>>\n    if <key (t v) pressed?> then\n        Hide Variables\n        broadcast (Clear Text v)\n        * Print: [Testing, testing... How does this look?] X: [-220] Y: [50]\n        * Print: [\(Press T to go back\)] X: [-220] Y: [-50]\n        wait until <not <key (t v) pressed?>>\n        wait until <key (t v) pressed?>\n        broadcast (Clear Text v)\n        Show Variables\n        wait until <not <key (t v) pressed?>>\n    end\nend\nbroadcast (Clear Text v)\nHide Variables\n\ndefine Hide Variables\nhide variable [size v]\nhide variable [direction v]\nhide variable [color v]\nhide variable [brightness v]\nhide variable [x border v]\nhide variable [letter width v]\nhide variable [line width v]\nhide variable [fx intensity v]\nhide variable [fx speed v]\nhide variable [mouse ghost v]\nhide variable [toward mouse v]\nhide variable [away mouse v]\nhide variable [mouse bulge v]\nhide variable [sin wave v]\nhide variable [rainbow v]\nhide variable [sway v]\nhide variable [spin v]\nhide variable [jiggle v]\nhide variable [print immediately? v]\n\ndefine Show Variables\nshow variable [size v]\nshow variable [direction v]\nshow variable [color v]\nshow variable [brightness v]\nshow variable [x border v]\nshow variable [letter width v]\nshow variable [line width v]\nshow variable [fx intensity v]\nshow variable [fx speed v]\nshow variable [mouse ghost v]\nshow variable [toward mouse v]\nshow variable [away mouse v]\nshow variable [mouse bulge v]\nshow variable [sin wave v]\nshow variable [rainbow v]\nshow variable [sway v]\nshow variable [spin v]\nshow variable [jiggle v]\nshow variable [print immediately? v]\n\ndefine * Print: (text) X: (x) Y: (y)\n* Specific Print: (text) X (x) Y (y) Size (Size) Color (Color) Brightness (Brightness) X Border (X Border) Letter Spacing (Letter Width) Line Spacing (Line Width) Use FX? [1] Immediate? (Print Immediately?) Direction (Direction)\n\ndefine * Main Settings: Size (size) Direction (direction) Color (color) Brightness (brightness) X Border (x border) Letter Width (letter width) Line Width (line width) Print Immediately? (print immediately?)\nset [size v] to (size)\nset [direction v] to (direction)\nset [color v] to (color)\nset [brightness v] to (brightness)\nset [x border v] to (x border)\nset [letter width v] to (letter width)\nset [line width v] to (line width)\nset [print immediately? v] to (print immediately?)\n\nbroadcast (Clear Text v)\n\n* Reset\n\n* Open Variable Editor\n\n* Special Effects Settings (1 = on, 0 = off): Mouse Ghost [0] Toward Mouse [0] Away Mouse [0] Mouse Bulge [0] Sin Wave [0] Rainbow [0] Sway [0] Spin [0] Jiggle [0] FX Intensity [5] FX Speed [5]\n\n* Main Settings: Size [100] Direction [90] Color [0] Brightness [0] X Border [220] Letter Width [1] Line Width [1] Print Immediately? [0]\n\n* Print: [\[Your text here\]] X: [0] Y: [0]\n\n* Specific Print: [\[Your text here\]] X [0] Y [0] Size [100] Color [0] Brightness [0] X Border [220] Letter Spacing [1] Line Spacing [1] Use FX? [0] Immediate? [0] Direction [90]\n\nwhen flag clicked\nwait (3) seconds\n* Special Effects Settings (1 = on, 0 = off): Mouse Ghost [] Toward Mouse [] Away Mouse [] Mouse Bulge [] Sin Wave [] Rainbow [] Sway [] Spin [] Jiggle [] FX Intensity [] FX Speed []\n* Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-130] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-50] Y: [160]\n\nwhen flag clicked\nforever\n    if <(Level) < [41]> then\n        wait (1) seconds\n        change [time v] by (1)\n    else\n        if <(Level) = [41]> then\n            * Print: (time) X: [-124] Y: [73]\n        end\n    end\nend\n\nif <(Level) > [21]> then\n\nwhen I receive [rickrolled!!! v]\nbroadcast (Clear Text v)\n\nwhen I receive [next level secret v]\nbroadcast (Clear Text v)\nwait (.01) seconds\nif <<<not <(Level) = [7]>> and <<not <(Level) = [19]>> and <not <(Level) = [29]>>>> and <not <(Level) = [35]>>> then\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nelse\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nend\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-110] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-30] Y: [160]\n\nwhen I receive [the end v]\nbroadcast (Clear Text v)\n\nwhen I receive [end v]\n* Main Settings: Size [100] Direction [90] Color [80] Brightness [-10] X Border [200] Letter Width [1] Line Width [1] Print Immediately? [0]\n* Special Effects Settings (1 = on, 0 = off): Mouse Ghost [0] Toward Mouse [0] Away Mouse [0] Mouse Bulge [0] Sin Wave [0] Rainbow [0] Sway [0] Spin [0] Jiggle [1] FX Intensity [5] FX Speed [5]\n* Print: [Well done kid. ] X: [-220] Y: [-60]\nwait until <key (any v) pressed?>\nbroadcast (Clear Text v)\n* Print: [Unfortunately for you, I can't have you blabbing about what's going on here ] X: [-220] Y: [-60]\nwait until <key (any v) pressed?>\nbroadcast (Clear Text v)\n* Print: [Besides, I have big plans for you] X: [-220] Y: [-60]\nwait until <key (any v) pressed?>\nbroadcast (Clear Text v)\n* Print: [See you around, ] X: [-220] Y: [-60]\nwait (.5) seconds\n* Print: (username) X: [-25] Y: [-60]\nwait until <key (any v) pressed?>\nbroadcast (Clear Text v)\nbroadcast (pain v)\n\n* Main Settings: Size [100] Direction [90] Color [80] Brightness [0] X Border [200] Letter Width [1] Line Width [1] Print Immediately? [0]\n* Special Effects Settings (1 = on, 0 = off): Mouse Ghost [0] Toward Mouse [0] Away Mouse [0] Mouse Bulge [0] Sin Wave [0] Rainbow [0] Sway [0] Spin [0] Jiggle [1] FX Intensity [5] FX Speed [5]\n\n* Special Effects Settings (1 = on, 0 = off): Mouse Ghost [] Toward Mouse [] Away Mouse [] Mouse Bulge [] Sin Wave [] Rainbow [] Sway [] Spin [] Jiggle [] FX Intensity [] FX Speed []\n* Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-130] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-50] Y: [160]\n\nwhen I receive [ded v]\nbroadcast (Clear Text v)\nwait (.01) seconds\nif <<<not <(Level) = [7]>> and <<not <(Level) = [19]>> and <not <(Level) = [29]>>>> and <not <(Level) = [35]>>> then\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nelse\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nend\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-130] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-50] Y: [160]\n\nwhen I receive [coin v]\nbroadcast (Clear Text v)\nwait (.01) seconds\nif <<<not <(Level) = [7]>> and <<not <(Level) = [19]>> and <not <(Level) = [29]>>>> and <not <(Level) = [35]>>> then\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nelse\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nend\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-130] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-50] Y: [160]\n\nwhen I receive [level up v]\nbroadcast (Clear Text v)\nwait (.01) seconds\nif <<<not <(Level) = [7]>> and <<not <(Level) = [19]>> and <not <(Level) = [29]>>>> and <not <(Level) = [35]>>> then\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [-100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nelse\n    * Main Settings: Size [100] Direction [90] Color [0] Brightness [100] X Border [1] Letter Width [1] Line Width [1] Print Immediately? [1]\nend\n* Print: (join [Level:] (Level)) X: [-220] Y: [160]\n* Print: (join [Coins:] (Coins)) X: [-130] Y: [160]\n* Print: (join [Deaths:] (Deaths)) X: [-50] Y: [160]\nrepeat (2)\n\nset [level v] to [39]\n\n@inverter thing\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nforever\n    if <<touching (dood v)?> and <(inverted) = [0]>> then\n        broadcast (invert v)\n        set [inverted v] to [1]\n    end\nend\n\n@uninverter thing\n\nwhen flag clicked\nforever\n    switch costume to (Level)\nend\n\nwhen flag clicked\nforever\n    if <<touching (dood v)?> and <(inverted) = [1]>> then\n        broadcast (uninvert v)\n        set [inverted v] to [0]\n    end\nend\n\n@The Crack\n\nwhen flag clicked\nhide\nforever\n    if <(Level) = [40]> then\n        show\n        go to x: (133) y: (-121)\n    else\n        hide\n    end\n    if <touching (dood v)?> then\n        broadcast (The End v)\n    end\nend\n\nwhen I receive [the end v]\nstop [other scripts in sprite v]\nwait (3) seconds\nforever\n    hide\nend\n\n
Original share date: June 22 2022\nThis here is my pride and joy. \n\nArrow keys or WASD to move and R to restart the level.\n\nBe careful as some things are not as they seem. \n\nDouble-click the flag if restarting after the end.\n\nTell me what you think. Also please no major story spoilers in the comments.\n~~~~~~~~~~~~~~~~~~~Updates~~~~~~~~~~~~~~~~~~\nv1.00-First twenty levels added. Ideas for more will be appreciated\nv1.10-Secret finished. It can be found at [REDACTED]\nv1.11-Added subtle reminders to heart, star and follow\nv1.12-Stopped momentum when you level up or die. This  was annoying me and I'm pretty sure it was annoying you guys so it had to go\nv1.13-Replaced variables with @Will_Wam's text engine\nv2.13-Next 20 levels added. I feel like I made it so it would be easier to make a sequel instead of more levels so I'll work on a sequel at either 200 views or 30 loves and favorites.\nv2.14-Fixed a bug that had something to do with the secret.\nv2.15-Fixed a visual thing that was bugging me.\nv2.16-Added a thing...\n07/29/22-v2.17-Added restarting with R and dates to the changelog, things that should have been added in v1.00.\n07/31.22-v2.18-Added different directional costumes to dood\n08/22/22-v2.19-Fixed a visual bug where dood wouldn't change to his explode costumes or would change to his normal costumes mid-animation\n3/25/23-v2.19-nothing added just telling myself to be specific in the changelog. no more "added a thing"\n2/11/24-v2.20-Edited the level 40 dialogue final cutscene to conform more to my plans for the series. Also added some extra fun dialogue after the final cutscene \n2/15/24-v2.21-Changed the coin models and made them spin :D\n~~~~~~~~~~~~~~~~~~Milestones~~~~~~~~~~~~~~~~~\n06/27/22-First love and favorite \n07/04/22-Fifty views. Things are coming along nicely \n07/06/22-First 10 loves\n07/07/22-First 10 favorites. Time for more levels.\n07/13/22-100 views. Things are looking good.\n07/23/22-20 loves. I'm running out of things to say at this point but still, thank you so much.\n08/01/22-20 favorites. Like before, I don't really know what to say but thank you.\n08/02/22-30 loves. Again, thank you. I never thought people would like it this much.\n08/08/22- Oh cool, someone popular loved this              (@-Achelxis- ).\n08/13/22- 30 favorites. This is getting way more attention than I expected, thank you. \n08/19/22-40 loves. [Words of gratitude]\n08/23/22-40 favorites. [More words of gratitude] \n08/31/22-50 loves.\n09/25/22-50 favorites. I should probably start doing this at bigger intervals of loves and favorites. \n~~~~~~~~~~~~~~~~~~~Credits~~~~~~~~~~~~~~~~~~~\n@corpcooga -Platformer tutorial \nhttps://scratch.mit.edu/projects/396779140/\n@XxFrogpantsxX -Fake platforms, lava and ghost trail code and feedback\n@Will_Wam -Text engine\nhttps://scratch.mit.edu/projects/668054871/\n@thisisntme -Explosion sprite/sound https://scratch.mit.edu/projects/1768016/ \nAt least half of the platformers on scratch -Art inspiration\nDefault Dan -Mechanics inspiration\nUndertale -Death sound, music-Ooo, In My Way, But Nobody Came\nPikmin 2 -Music-Emergence Cave (Olimar)\nSpecial Thanks to @XxFrogpantsxX for putting up with how stupid I am and helping me throughout the production of this game. Go follow him.  I mean it.\nThanks for reading, have a great day :)\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nTags-  #all #platformer #generic #game\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nWhat?\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nThere's nothing down here.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nFine. The key to the secret is at level 18 and the door is at \nlevel 20. But you may not like what you find...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n