Light|| A Platformer


@Stage\n\n@player\n\nwhen flag clicked\nforever\n    set [playerx v] to (x position)\n    set [playery v] to (y position)\nend\n\nwhen flag clicked\nforever\n    play sound [TheFatRat - Prelude \(Jackpot EP Track 3\) v] until done\nend\n\nwhen I start as a clone\nswitch costume to (costume3 v)\nset [ghost v] effect to (65)\nset size to (100) %\nset [brightness v] effect to (30)\nrepeat (20)\n    change size by (-5)\n    change [ghost v] effect by (2.5)\nend\ndelete this clone\n\nchange [color v] effect by (-20)\n\nwhen flag clicked\nforever\n    create clone of (_myself_ v)\nend\n\ndefine platform (jump height) (gravity) (friction) (running speed)\nif <<key (right arrow v) pressed?> or <<key (d v) pressed?> or <<mouse down?> and <(mouse x) > (playerx)>>>> then\n    change [xvelocity v] by ((running speed) * (1))\n    switch costume to (costume1 v)\nend\nif <<key (left arrow v) pressed?> or <<key (a v) pressed?> or <<mouse down?> and <(mouse x) < (playerx)>>>> then\n    change [xvelocity v] by ((running speed) * (-1))\n    switch costume to (costume2 v)\nend\nset [xvelocity v] to ((xvelocity) * (friction))\nchange x by (xvelocity)\nif <touching (level v)?> then\n    set [slope v] to [0]\n    repeat until <<(slope) = [8]> or <not <touching (level v)?>>>\n        change [slope v] by (1)\n        change y by (1)\n    end\n    if <touching (level v)?> then\n        change y by ((slope) * (-1))\n        repeat ([ceiling v] of ([abs v] of (xvelocity) ) )\n            if <touching (level v)?> then\n                change x by ((([abs v] of (xvelocity) ) / (xvelocity)) * (-1))\n            end\n        end\n        set [xvelocity v] to [0]\n    end\nend\nchange y by (yvelocity)\nif <touching (level v)?> then\n    repeat ([ceiling v] of ([abs v] of (yvelocity) ) )\n        if <touching (level v)?> then\n            change y by ((([abs v] of (yvelocity) ) / (yvelocity)) * (-1))\n        end\n    end\n    if <<(([abs v] of (yvelocity) ) / (yvelocity)) = [-1]> and <<key (up arrow v) pressed?> or <<key (w v) pressed?> or <<touching (jump pad v)?> or <<mouse down?> and <(mouse y) > (playery)>>>>>> then\n        set [yvelocity v] to (jump height)\n    else\n        set [yvelocity v] to [0]\n    end\nelse\n    change [yvelocity v] by (-1)\nend\n\nwhen flag clicked\ngo to x: (-202) y: (-40)\nset [xvelocity v] to [0]\nset [yvelocity v] to [0]\nforever\n    if <touching (jump pad v)?> then\n        platform [20] [-1] [0.7] [2.3]\n    else\n        platform [12] [-1] [0.7] [2.3]\n    end\nend\n\nwhen flag clicked\nset [ghost v] effect to (0)\nforever\n    if <touching (evil stuff v)?> then\n        broadcast (respawn muahaha  v)\n    end\nend\n\nwhen I receive [respawn muahaha  v]\ngo to x: (-202) y: (-60)\n\nwhen flag clicked\nforever\n    if <touching (goal v)?> then\n        broadcast (respawn muahaha  v)\n        broadcast (next level v)\n    end\nend\n\ndefine out\n\nwhen flag clicked\nforever\n    if <(xvelocity) > [0]> then\n        repeat until <not <touching color (#3bb700)?>>\n            change x by (-1)\n        end\n    else\n        if <(xvelocity) < [0]> then\n            repeat until <not <touching color (#3bb700)?>>\n                change x by (1)\n            end\n        end\n    end\nend\n\nwhen flag clicked\nset [brightness v] effect to (30)\n\nwhen flag clicked\nswitch costume to (costume1 v)\n\n@evil stuff\n\nwhen flag clicked\nforever\n    switch costume to (level #)\nend\n\nwhen flag clicked\ngo to x: (0) y: (0)\nforever\n    repeat (20)\n        change y by (0.5)\n    end\n    repeat (20)\n        change y by (-0.5)\n    end\nend\n\n@level\n\nwhen flag clicked\nforever\n    go to x: (0) y: (0)\n    switch costume to (level #)\nend\n\nwhen flag clicked\nswitch costume to (costume1 v)\ngo [forward v] (8) layers\n\nwhen flag clicked\nforever\n    set [level # v] to (costume [number v])\nend\n\nwhen I receive [next level v]\nchange [level # v] by (1)\n\n@goal\n\nwhen flag clicked\nshow\nset size to (100) %\nset size to (75) %\nset [ghost v] effect to (25)\npoint in direction (75)\nforever\n    repeat (30)\n        turn right (1) degrees\n    end\n    repeat (30)\n        turn left (1) degrees\n    end\nend\n\nwhen flag clicked\ncreate clone of (_myself_ v)\n\nwhen I start as a clone\nshow\npoint in direction (90)\nset [ghost v] effect to (0)\nforever\n    if <(level #) = [1]> then\n        go to x: (218) y: (-57)\n    end\n    if <(level #) = [11]> then\n        go to x: (218) y: (110)\n    end\n    if <(level #) = [13]> then\n        go to x: (218) y: (-57)\n    end\n    if <(level #) = [15]> then\n        hide\n    end\nend\n\nwhen flag clicked\ngo to x: (212) y: (-57)\nforever\n    if <(level #) = [1]> then\n        go to x: (218) y: (-57)\n    end\n    if <(level #) = [11]> then\n        go to x: (218) y: (110)\n    end\n    if <(level #) = [13]> then\n        go to x: (218) y: (-57)\n    end\n    if <(level #) = [15]> then\n        hide\n    end\nend\n\n@sign\n\nwhen flag clicked\nforever\n    switch costume to (level #)\nend\n\nwhen this sprite clicked\nif <(level #) = [1]> then\n    say [welcome to Light: A Platformer!] for (2) seconds\nend\nif <(level #) = [2]> then\n    say [watch out for lava] for (1.5) seconds\nend\nif <(level #) = [3]> then\n    say [use jump pads for higher jumps] for (4) seconds\nend\nif <(level #) = [9]> then\n    say [heh] for (1.5) seconds\nend\n\n@cooltext-357179999502882\n\nwhen flag clicked\npoint in direction (90)\nset size to (100) %\nforever\n    repeat (10)\n        change size by (0.5)\n    end\n    repeat (10)\n        change size by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (-5)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen this sprite clicked\nbroadcast (respawn muahaha  v)\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\n@jump pad\n\nwhen flag clicked\nforever\n    switch costume to (level #)\nend\n\nwhen flag clicked\ngo [forward v] (3) layers\n\n@Sprite1\n\nwhen flag clicked\ngo to x: (-255) y: (125)\nset [ghost v] effect to (100)\nforever\n    create clone of (_myself_ v)\n    wait (0.07) seconds\nend\n\nwhen I start as a clone\ngo to [back v] layer\npoint in direction (pick random (50) to (140))\ngo to x: (-260) y: (pick random (-150) to (180))\nset [ghost v] effect to (pick random (50) to (95))\nset size to (pick random (50) to (150)) %\nrepeat (100)\n    change x by (5)\nend\n\nwhen I start as a clone\nif <(size) > [100]> then\n    wait (1) seconds\nelse\n    wait (1.5) seconds\nend\nrepeat (500)\n    change [ghost v] effect by (0.5)\nend\ndelete this clone\n\nwhen flag clicked\nshow\n\n@Sprite2\n\nwhen flag clicked\ngo to x: (-255) y: (125)\nset [ghost v] effect to (100)\nforever\n    create clone of (_myself_ v)\n    wait (0.07) seconds\nend\n\nwhen I start as a clone\ngo to [back v] layer\ngo to x: (-260) y: (pick random (-150) to (180))\nset [ghost v] effect to (pick random (50) to (95))\nset size to (pick random (50) to (150)) %\nrepeat (50)\n    change x by (10)\nend\n\nwhen I start as a clone\nif <(size) > [100]> then\n    wait (0.5) seconds\nelse\n    wait (0.75) seconds\nend\nrepeat (250)\n    change [ghost v] effect by (1)\nend\ndelete this clone\n\nwhen flag clicked\nshow\n\n@Sprite3\n\nwhen flag clicked\ngo to x: (238) y: (174)\nset [ghost v] effect to (100)\nforever\n    create clone of (_myself_ v)\nend\n\nwait (0.1) seconds\n\nwhen I start as a clone\nset [ghost v] effect to (pick random (20) to (90))\nset size to (pick random (100) to (150)) %\ngo to x: (238) y: (174)\npoint in direction (pick random (190) to (260))\nrepeat (50)\n    move (3) steps\nend\n\nwhen I start as a clone\nwait (0.5) seconds\nrepeat (50)\n    change [ghost v] effect by (2)\nend\ndelete this clone\n\n@Sprite4\n\nwhen flag clicked\ngo to x: (238) y: (174)\nset [ghost v] effect to (100)\nforever\n    create clone of (_myself_ v)\nend\n\nwhen I start as a clone\ngo [backward v] (10) layers\nset [ghost v] effect to (pick random (5) to (50))\nset size to (pick random (10) to (90)) %\nset [color v] effect to (pick random (-100) to (100))\nset [brightness v] effect to (0)\ngo to (player v)\npoint in direction (pick random (0) to (360))\nrepeat (60)\n    move (1) steps\nend\npoint towards (player v)\nrepeat (60)\n    move (1) steps\nend\n\nwhen I start as a clone\nwait (1.5) seconds\nrepeat (50)\n    change [ghost v] effect by (2)\nend\ndelete this clone\n\nwait (0.1) seconds\n\nwhen flag clicked\ngo [backward v] (5) layers\n\n@cooltext-357192327498122\n\nwhen flag clicked\nhide\nforever\n    if <(level #) = [15]> then\n        show\n    end\nend\n\n@cooltext-357192156879951\n\nwhen flag clicked\nset [ghost v] effect to (100)\nforever\n    show\n    go to [front v] layer\nend\n\n@cooltext-357180023871607\n\nwhen flag clicked\nshow\ngo to x: (-124) y: (-155)\npoint in direction (90)\nset size to (100) %\nforever\n    repeat (10)\n        change size by (0.5)\n    end\n    repeat (10)\n        change size by (-0.5)\n    end\nend\n\nwhen flag clicked\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (-5)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen this sprite clicked\nbroadcast (next level v)\nbroadcast (respawn muahaha  v)\nhide\n\nwhen flag clicked\nshow\nforever\n    if <(level #) = [15]> then\n        hide\n    end\nend\n\nwhen flag clicked\nforever\n    go to [front v] layer\nend\n\n