The Ninja 3

Instructions: Love + Fave + Follow = Me Happy\n

@Stage\n\nwhen flag clicked\nforever\n    play sound [Vexento - Tevo v] until done\nend\n\n@Blue\n\nwhen flag clicked\ngo to x: (-210) y: (0)\nwait (1) seconds\nforever\n    change [speed y v] by (-1)\n    change y by (Speed Y)\n    change [falling? v] by (1)\n    Touch Ground <(Speed Y) > [0]>\n    set [speed x v] to ((Speed X) * (0.9))\n    if <key (right arrow v) pressed?> then\n        change [speed x v] by (0.6)\n    end\n    if <key (left arrow v) pressed?> then\n        change [speed x v] by (-0.6)\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        end\n    end\n    if <<key (up arrow v) pressed?> and <(Falling?) < [6]>> then\n        set [speed y v] to [9]\n    end\n    if <touching (spikes v)?> then\n        broadcast (Death v)\n    end\nend\n\ndefine Touch Ground <up?>\nrepeat until <not <<touching color (#66e646)?> or <touching color (#339fff)?>>>\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 [steep v] to [0]\nrepeat until <<(Steep) = [8]> or <not <<touching color (#66e646)?> or <touching color (#339fff)?>>>>\n    change y by (1)\n    change [steep v] by (1)\nend\nif <(Steep) = [8]> then\n    change x by ((-1) * (speed))\n    change y by (-8)\nend\n\nwhen I receive [next level v]\ngo to x: (-210) y: (0)\n\nwhen I receive [death v]\ngo to x: (-210) y: (0)\nset [falling? v] to [6]\n\n@Red\n\nwhen flag clicked\ngo to x: (-190) y: (0)\nwait (1) seconds\nforever\n    change [speed y v] by (-1)\n    change y by (Speed Y)\n    change [falling? v] by (1)\n    Touch Ground <(Speed Y) > [0]>\n    set [speed x v] to ((Speed X) * (0.9))\n    if <key (d v) pressed?> then\n        change [speed x v] by (0.6)\n    end\n    if <key (a v) pressed?> then\n        change [speed x v] by (-0.6)\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        end\n    end\n    if <<key (w v) pressed?> and <(Falling?) < [6]>> then\n        set [speed y v] to [9]\n    end\n    if <touching (spikes v)?> then\n        broadcast (Death v)\n    end\nend\n\ndefine Touch Ground <up?>\nrepeat until <not <<touching color (#66e646)?> or <touching color (#ff3232)?>>>\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 [steep v] to [0]\nrepeat until <<(Steep) = [8]> or <not <<touching color (#66e646)?> or <touching color (#ff3232)?>>>>\n    change y by (1)\n    change [steep v] by (1)\nend\nif <(Steep) = [8]> then\n    change x by ((-1) * (speed))\n    change y by (-8)\nend\n\nwhen I receive [next level v]\ngo to x: (-190) y: (0)\n\nwhen I receive [death v]\ngo to x: (-190) y: (0)\nset [falling? v] to [6]\n\n@Platform\n\nwhen I receive [next level v]\nif < (costume [name v]) contains [Red]?> then\n    repeat (2)\n        next costume\n    end\nelse\n    next costume\nend\n\nwhen flag clicked\nswitch costume to (red 1 v)\nforever\n    set [level v] to (costume [number v])\nend\n\nwhen I receive [change v]\nif < (costume [name v]) contains [Red]?> then\n    next costume\nelse\n    switch costume to ((costume [number v]) - (1))\nend\n\n@Spikes\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\n\n@Goal\n\nwhen flag clicked\nswitch costume to (1 v)\nforever\n    if <<touching (blue v)?> and <touching (red v)?>> then\n        broadcast (Next Level v)\n    end\nend\n\nwhen I receive [next level v]\nnext costume\n\n@Button\n\nwhen flag clicked\nswitch costume to (1 v)\nforever\n    if <<touching (blue v)?> or <touching (red v)?>> then\n        say [Press Space] for (0) seconds\n    end\nend\n\nwhen I receive [next level v]\nnext costume\n\nwhen flag clicked\nswitch costume to (1 v)\nforever\n    if <<<touching (blue v)?> or <touching (red v)?>> and <key (space v) pressed?>> then\n        broadcast (Change v)\n        wait until <not <key (space v) pressed?>>\n    end\nend\n\n@Moving Platforms\n\ndefine Move (speed) (times) (mode) (limit)\nrepeat (times)\n    if <(Level) < (limit)> then\n        if <(mode) = [X]> then\n            change x by (speed)\n        else\n            change y by (speed)\n        end\n    else\n        hide\n    end\nend\n\nwhen flag clicked\nhide\nswitch costume to (1 v)\nforever\n    if <<(Level) = [7]> or <(Level) = [8]>> then\n        show\n        go to x: (-75) y: (-100)\n        Move [3] [50] [X] [9]\n        Move [-3] [50] [X] [9]\n    end\n    if <<(Level) = [13]> or <(Level) = [14]>> then\n        show\n        go to x: (-75) y: (-100)\n        Move [3] [50] [Y] [15]\n        Move [-3] [50] [Y] [15]\n    end\n    if <<(Level) = [15]> or <(Level) = [16]>> then\n        switch costume to (2 v)\n        show\n        go to x: (-130) y: (-30)\n        Move [3] [18] [Y] [17]\n        Move [-3] [18] [Y] [17]\n    end\nend\n\n@Thumbnail\n\nwhen flag clicked\nrepeat (40)\n    change [ghost v] effect by (2.5)\nend\n\nwhen I receive [next level v]\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\ngo to x: (-999) y: (0)\nswitch costume to (2 v)\nclear graphic effects\nset [speed v] to [44]\nrepeat (22)\n    change x by (Speed)\n    change [speed v] by (-2)\nend\nrepeat (22)\n    change x by (Speed)\n    change [speed v] by (2)\nend\ndelete this clone\n\n@Buttons\n\nwhen flag clicked\ncreate clone of (_myself_ v)\nforever\n    if <touching (mouse-pointer v)?> then\n        repeat until <(size) = [120]>\n            change size by (4)\n        end\n        if <mouse down?> then\n            set size to (100) %\n            if <(Level) < [17]> then\n                broadcast (Next Level v)\n            end\n            wait (1) seconds\n        end\n    else\n        repeat until <(size) = [100]>\n            change size by (-4)\n        end\n    end\nend\n\nwhen I start as a clone\nswitch costume to (2 v)\ngo to x: (-200) y: (-150)\nforever\n    if <touching (mouse-pointer v)?> then\n        repeat until <(size) = [120]>\n            change size by (4)\n        end\n        if <mouse down?> then\n            set size to (100) %\n            broadcast (Death v)\n            wait (0.1) seconds\n        end\n    else\n        repeat until <(size) = [100]>\n            change size by (-4)\n        end\n    end\nend\n\n