Catneric A Platformer

Instructions: Welcome to Catneric.\n\nThis is a Generic Cat Platformer.\n\nI'm sorry to everyone that hates generic platformers. This will be the most generic thing I will make. \n\nThis game is mobile friendly too! :D

@Stage\n\nwhen flag clicked\nswitch backdrop to (unlimited2 v)\n\nwhen flag clicked\nset [scene v] to [1]\nforever\n    do magic\nend\n\ndefine do magic\n\nwhen I receive [\[intro\] over v]\nswitch backdrop to (unlimited v)\nforever\n    play sound [fall-with-me-ncs-release v] until done\nend\n\nswitch backdrop to (SCENE)\n\nwhen I receive [\[intro\] end v]\nbroadcast (\[Intro\] over v)\n\n@blank\n\nwhen I receive [\[intro\] end v]\n\nwhen flag clicked\nbroadcast (\[Intro\] over v)\n\n@Ground\n\nwhen I receive [\[intro\] over v]\nshow\nset [scene v] to [1]\ngo to x: (0) y: (0)\nforever\n    switch costume to (SCENE)\nend\n\nwhen flag clicked\nhide\n\n@Spikes\n\nwhen I receive [\[intro\] over v]\nshow\nset [scene v] to [1]\nforever\n    switch costume to (SCENE)\nend\n\nwhen flag clicked\nhide\n\n@Lava\n\nwhen flag clicked\n\nwhen flag clicked\nhide\nforever\n    set [magma v] to [0]\n    repeat (10)\n        change [magma v] by (1)\n    end\n    repeat (20)\n        change [magma v] by (-1)\n    end\n    repeat (10)\n        change [magma v] by (1)\n    end\nend\n\nset [scene v] to [1]\n\nwhen I receive [\[intro\] over v]\nshow\nset [scene v] to [1]\nforever\n    set y to (Magma)\n    switch costume to (SCENE)\nend\n\n@Player Trail\n\nwhen flag clicked\nhide\nset [length v] to [50]\n\nwhen I start as a clone\nshow\nrepeat (length)\n    change [ghost v] effect by (10)\n    change size by (-5)\nend\ndelete this clone\n\nwhen I receive [\[intro\] over v]\nshow\nforever\n    set [costume v] to ([costume name v] of [player v])\n    set [direction v] to ([direction v] of [player v])\n    set [y v] to ([y position v] of [player v])\n    set [x v] to ([x position v] of [player v])\n    switch costume to (costume)\n    point in direction (direction)\n    go to x: (x) y: (y)\n    create clone of (_myself_ v)\nend\n\nchange [ghost v] effect by (10)\n\n@Sprite3\n\nwhen flag clicked\nhide\ngo [forward v] (10) layers\n\n    wait (pick random (0) to (0.02)) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nclear graphic effects\nset [ghost v] effect to (pick random (70) to (90))\nset size to (pick random (25) to (45)) %\ngo to x: (pick random (240) to (-240)) y: (170)\npoint in direction (90)\nshow\nglide (pick random (2) to (8)) secs to x: (pick random (240) to (-240)) y: (-180)\nhide\ndelete this clone\n\n@Sprite4\n\nwhen flag clicked\nhide\ngo [forward v] (10) layers\n\n    wait (pick random (0) to (0.02)) seconds\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo to [front v] layer\nclear graphic effects\nset [ghost v] effect to (pick random (70) to (90))\nset size to (pick random (25) to (45)) %\ngo to x: (pick random (240) to (-240)) y: (170)\npoint in direction (90)\nshow\nglide (pick random (2) to (8)) secs to x: (pick random (240) to (-240)) y: (-180)\nhide\ndelete this clone\n\n@Thanks\n\nwhen flag clicked\nhide\nwait (1) seconds\nwait until <(Actions \(love/fave\)) = [2]>\nwait (1) seconds\nshow\ngo to x: (0) y: (50)\nreset timer\ngo to [front v] layer\nswitch costume to (red v)\nset [ghost v] effect to (100)\nrepeat until <(timer) > [3.5]>\n    change y by ((y position) / (-15))\n    change [ghost v] effect by (-3)\nend\nswitch costume to (blue v)\nreset timer\nrepeat until <(timer) > [3.5]>\n    change y by (((y position) - (-100)) / (-15))\n    change [ghost v] effect by (10)\nend\nhide\n\nwhen flag clicked\nswitch costume to (red v)\n\n@detector\n\nwhen flag clicked\nshow\nset [ghost v] effect to (100)\nset [actions \(love/fave\) v] to [0]\nforever\n    set [touching v] to [none]\n    Detect [love] at [-201] [-220]\n    Detect [fave] at [-201] [-220]\nend\n\ndefine Detect (thing) at (x) (y)\nswitch costume to (empty v)\nset size to (27000) %\ngo to x: (x) y: (y)\nset size to (100) %\nswitch costume to (thing)\nif <touching (mouse-pointer v)?> then\n    set [touching v] to (costume [name v])\nend\n\nwhen flag clicked\nforever\n    wait until <(touching) = [love]>\n    wait (0.2) seconds\n    if <(touching) = [love]> then\n        change [actions \(love/fave\) v] by (1)\n        stop [this script v]\n    end\nend\n\nwhen flag clicked\nforever\n    wait until <(touching) = [fave]>\n    wait (0.2) seconds\n    if <(touching) = [fave]> then\n        change [actions \(love/fave\) v] by (1)\n        stop [this script v]\n    end\nend\n\n@SHdow\n\nwhen flag clicked\nhide\n\nwhen flag clicked\n\nwhen I receive [\[intro\] over v]\nshow\nforever\n    go to [back v] layer\n    switch costume to (SCENE)\n    set [ghost v] effect to (50)\nend\n\n@Player\n\nwhen flag clicked\ndelete all of [healths v]\nset rotation style [left-right v]\nreset\nsetup platformer\nbroadcast (Next Level v)\n\ndefine wall sensing bug\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by (1)\nend\n\ndefine reset\nset [xvel v] to [0]\nset [yvel v] to [0]\ngo to x: (-216) y: (40)\n\nwhen I receive [next level v]\nreset\n\ndefine setup platformer\nset [health v] to [7]\nset [gravity v] to [10]\nset [jump force v] to [15]\nset [speed v] to [2]\nset [scene v] to [1]\n\nwhen I receive [\[intro\] over v]\nforever\n    Show Health (health) of [7] offset y [-40]\n    if <(health) < [1]> then\n        start sound [Wood Tap v]\n        broadcast (__Screen Wipe v)\n        set [scene v] to [1]\n        set [health v] to [7]\n    end\n    left and right controls\n    wall sensing bug\n    wall sensing bug\n    wall sensing bug\n    wall sensing bug\n    walljumping/sensing\n    wall sensing\n    jumping\n    if <(x position) > [239]> then\n        broadcast (__Screen Wipe v)\n        broadcast (Next Level v) and wait\n        change [scene v] by (1)\n    end\n    if <<touching (lava v)?> or <touching (spikes v)?>> then\n        broadcast (die v)\n        start sound [Wood Tap v]\n        change [health v] by (-1)\n        reset\n    end\n    if <touching (trampoline v)?> then\n        start sound [jump1 v]\n        set [yvel v] to [20]\n    end\nend\n\ndefine left and right controls\nif <<<key (left arrow v) pressed?> or <key (a v) pressed?>> or <<mouse down?> and <(x position) > (mouse x)>>> then\n    change [xvel v] by ((speed) - ((speed) * (2)))\n    set [direction v] to [-90]\nend\nif <<<key (right arrow v) pressed?> or <key (d v) pressed?>> or <<mouse down?> and <(mouse x) > (x position)>>> then\n    change [xvel v] by (speed)\n    set [direction v] to [90]\nend\nset [xvel v] to ((xvel) * (0.85))\nchange x by (xvel)\n\ndefine walljumping/sensing\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by (-4)\n    change x by ((xvel) * (-1))\n    if <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>> then\n        if <(xvel) > ((gravity) + ((gravity) - ((gravity) * (2))))> then\n            set [xvel v] to (round ((gravity) - ((gravity) * (2))))\n        else\n            set [xvel v] to (round (gravity))\n        end\n        set [yvel v] to ((gravity) + ((gravity) - ((gravity) / (2))))\n    else\n        set [xvel v] to ((gravity) + ((gravity) - ((gravity) * (2))))\n    end\nend\n\ndefine wall sensing\nchange [yvel v] by ((((gravity) + ((gravity) - ((gravity) * (2)))) + (1)) * (-1))\nchange y by (yvel)\nif <<touching (ground v)?> or <touching (movin platformer v)?>> then\n    change y by ((yvel) - ((yvel) * (2)))\n    set [yvel v] to ((gravity) + ((gravity) - ((gravity) * (2))))\nend\nchange y by (-1)\n\ndefine jumping\nif <<<touching (ground v)?> or <touching (movin platformer v)?>> and <<<key (up arrow v) pressed?> or <key (w v) pressed?>> or <<mouse down?> and <(mouse y) > (y position)>>>> then\n    start sound [jump1 v]\n    set [yvel v] to (jump force)\nend\nchange y by (1)\n\nwhen I receive [\[intro\] over v]\nshow\nforever\n    broadcast (forever loop v)\nend\n\nwhen I receive [forever loop v]\npoint in direction (direction)\nset [x v] to (round (x position))\nset [y v] to (round (y position))\n\ndefine Show Health (health) of (max) offset y (y)\nadd (x position) to [healths v]\nadd ((y position) + (y)) to [healths v]\nadd ((health) / (max)) to [healths v]\ncreate clone of (health bar v)\n\nwhen flag clicked\nswitch costume to (red v)\n\nforever\n\nbroadcast (run v)\n\nwhen flag clicked\nhide\n\nsetup platformer\n\nwait until <(Actions \(love/fave\)) = [2]>\nset [health v] to [7]\nset [gravity v] to [10]\nset [jump force v] to [20]\nset [speed v] to [3]\nset [scene v] to [1]\n\nwait until <(Actions \(love/fave\)) = [2]>\n\nset [health v] to [7]\nset [gravity v] to [10]\nset [jump force v] to [20]\nset [speed v] to [3]\nset [scene v] to [1]\n\nwhen flag clicked\nwait until <(Actions \(love/fave\)) = [2]>\nswitch costume to (blue v)\n\nwhen flag clicked\n\nwhen flag clicked\nset [actions \(love/fave\) v] to [0]\n\n@health bar\n\nwhen flag clicked\nhide\ndelete all of [healths v]\n\nwhen I start as a clone\nset x to (item (1) of [healths v])\nset y to (item (2) of [healths v])\nswitch costume to ((10) * (item (3) of [healths v]))\ndelete (1) of [healths v]\ndelete (1) of [healths v]\ndelete (1) of [healths v]\nif <not <touching (_edge_ v)?>> then\n    go to [front v] layer\n    show\n    wait (0) seconds\nend\ndelete this clone\n\ndefine show health bar (health) of (max) offset y (y)\nadd (x position) to [healths v]\nadd ((y position) + (y)) to [healths v]\nadd ((health) / (max)) to [healths v]\ncreate clone of (health bar v)\n\nwhen I start as a clone\nforever\n    if <(EXIT) = [die]> then\n        go to [front v] layer\n        hide\n        wait (0) seconds\n        delete this clone\n    else\n        show\n    end\nend\n\nwhen flag clicked\ngo to [front v] layer\n\n@Mobile\n\nwhen I receive [\[intro\] over v]\nhide\nforever\n    if <mouse down?> then\n        set [ghost v] effect to (50)\n        go to (mouse-pointer v)\n        show\n        wait until <not <mouse down?>>\n        hide\n    end\nend\n\nset [joystickx v] to (x position)\nset [joysticky v] to (y position)\n\n@Mobile2\n\ndefine block name\nif <(mouse x) > (x position)> then\n    repeat until <<(round (x position)) = (round (mouse x))> or <(round (x position)) > (([x position v] of [mobile v]) + (19))>>\n        change x by (1)\n    end\nelse\n    if <(x position) > (mouse x)> then\n        repeat until <<(round (x position)) = (round (mouse x))> or <(([x position v] of [mobile v]) + (-19)) > (round (x position))>>\n            change x by (-1)\n        end\n    end\nend\nif <(mouse y) > (y position)> then\n    repeat until <<(round (y position)) = (round (mouse y))> or <(round (y position)) > (([y position v] of [mobile v]) + (19))>>\n        change y by (1)\n    end\nelse\n    if <(y position) > (mouse y)> then\n        repeat until <<(round (y position)) = (round (mouse y))> or <(([y position v] of [mobile v]) + (-19)) > (round (y position))>>\n            change y by (-1)\n        end\n    end\nend\n\nwhen I receive [\[intro\] over v]\npoint in direction (90)\nhide\nforever\n    if <mouse down?> then\n        set [ghost v] effect to (50)\n        go to (mobile v)\n        show\n        repeat until <not <mouse down?>>\n            block name\n        end\n        hide\n    end\nend\n\nforever\n    \n        say [Hello!]\n    else\n        say []\n    end\nend\n\n\n    move (1) steps\nend\n\nwhen flag clicked\n\nbroadcast (Play v)\n\n@Love and Fav\n\nwhen flag clicked\nhide\n\nwhen I receive [広告 v]\ncreate clone of (_myself_ v)\ngo to x: (152) y: (250)\nswitch costume to (ぐれー v)\nset size to (40) %\npoint in direction (90)\nshow\nstart sound [ポップ v]\nrepeat (30)\n    change y by (((145) - (y position)) / (6))\nend\nrepeat (3)\n    next costume\n    wait (0.75) seconds\nend\nrepeat (30)\n    change y by (((220) - (y position)) / (6))\nend\nhide\n\nwhen I start as a clone\ngo to x: (66) y: (92)\nset [ghost v] effect to (100)\nswitch costume to (マウス v)\ngo to [front v] layer\nset size to (45) %\npoint in direction (90)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\nend\nrepeat (20)\n    change x by (((115) - (x position)) / (5))\n    change y by (((140) - (y position)) / (5))\nend\nwait (0.05) seconds\nrepeat (20)\n    change x by (((156) - (x position)) / (5))\nend\nwait (0.05) seconds\nrepeat (20)\n    change x by (((195) - (x position)) / (5))\nend\nrepeat (20)\n    change x by (((195) - (x position)) / (5))\nend\nwait (0.05) seconds\nrepeat (20)\n    change x by (((229) - (x position)) / (5))\n    change y by (((95) - (y position)) / (5))\nend\nrepeat (10)\n    change [ghost v] effect by (25)\nend\nset [ghost v] effect to (0)\ndelete this clone\n\nwhen I receive [音◯ v]\nrepeat (20)\n    change volume by (-5)\nend\n\nwhen I receive [音 v]\nrepeat (20)\n    change volume by (5)\nend\n\nwhen I receive [広告 v]\nwait (0.9) seconds\nplay sound [Click v] until done\nwait (.7) seconds\nplay sound [Click v] until done\nwait (.7) seconds\nplay sound [Click v] until done\n\nrepeat (10)\n\nwhen I receive [\[intro\] over v]\nbroadcast (広告 v)\n\n@Tb\n\nwhen flag clicked\nforever\n    set [タイマー v] to (timer)\nend\n\nwhen [timer v] > (タイマー)\ngo to [front v] layer\nset size to (100) %\nshow\nif <(costume [number v]) = [1]> then\n    go to x: (-40) y: (0)\n    set [brightness v] effect to (100)\n    set [縦 v] to [53]\n    set [横 v] to [2]\n    repeat (10)\n        change [brightness v] effect by (-10)\n        change size by (((130) - (size)) / (1))\n        set [縦 v] to (((縦) * (0.15)) + (((0) - (x position)) / (150.55)))\n        set [横 v] to (((横) * (0.75)) + (((0) - (y position)) / (100)))\n        change x by (縦)\n        change y by (横)\n    end\n    repeat (20)\n        change size by (((100) - (size)) / (5))\n        set [縦 v] to (((縦) * (0.75)) + (((0) - (x position)) / (8.5)))\n        set [横 v] to (((横) * (0.75)) + (((0) - (y position)) / (5)))\n        change x by (縦)\n        change y by (横)\n    end\n    go to x: (0) y: (0)\nend\n\nwhen [timer v] > (タイマー)\nif <not <(♡&☆) = [11]>> then\n    broadcast (♡&☆ v)\nend\nforever\n    set [タイマー v] to (timer)\nend\n\nwhen flag clicked\nhide\nswitch costume to (サムネ v)\n\nwhen I receive [タイムアウト v]\ngo to x: (0) y: (0)\nswitch costume to (タイムアウト v)\nstop [all v]\n\n@transition\n\nwhen flag clicked\nhide\n\nwhen I receive [die v]\nif <not <(win) = [1]>> then\n    start sound [Whoosh v]\n    wait () seconds\n    go to x: (0) y: (0)\n    set [ghost v] effect to (0)\n    go [forward v] (1) layers\n    go to [front v] layer\n    go to [front v] layer\n    switch costume to (costume1 v)\n    set x to (500)\n    show\n    repeat (15)\n        change x by (-70)\n        change [ghost v] effect by (3)\n    end\n    hide\nend\n\n@Love and fave reminder2\n\nwhen flag clicked\nhide\nwait (10) seconds\nforever\n    if <(Actions \(love/fave\)) < [2]> then\n        switch costume to (costume1 v)\n        go to x: (-100) y: (125)\n        show\n        go to [front v] layer\n        repeat (11)\n            change y by (-6)\n        end\n        repeat (7)\n            change y by (3)\n        end\n        repeat (6)\n            change y by (-2)\n        end\n        wait until <<touching (mouse-pointer v)?> and <mouse down?>>\n        repeat (17)\n            change y by (7)\n        end\n        hide\n        stop [this script v]\n    else\n        stop [this script v]\n    end\nend\n\nwhen flag clicked\nwait (2.5) seconds\ngo to [front v] layer\n\nwhen flag clicked\n\n@Sprite2\n\nwhen flag clicked\nforever\n    block name\nend\n\nwhen I receive [\[part1\] end v]\n\nhide\n\nwhen flag clicked\nshow\ngo to [back v] layer\nset size to (100) %\ngo to x: (230) y: (160)\nforever\n    change [size change v] by (5)\n    change size by ([cos v] of ((Size change) * (1.5)) )\nend\n\ndefine block name\ngo [backward v] (1000000000000) layers\ngo to [back v] layer\n\nwhen flag clicked\n\nwhen I receive [\[part1\] end v]\nbroadcast (\[Intro\] end v)\n\n