Pen Platformer (80% Pen)

Instructions: ---------------------------------------------------------------------\nUse arrows to move (↑ to jump, ← & →)\n---------------------------------------------------------------------\nTouch the right wall to get to the next level\n---------------------------------------------------------------------

@Stage\n\nwhen flag clicked\nset volume to (30) %\nforever\n    play sound [Vexento - Digital Kiss.mp3 v] until done\nend\n\n@Sprite1\n\ndefine Ground\npen up\nset pen color to (#995900)\nset pen shade to (30)\nset pen size to (60)\ngo to x: (-240) y: (-150)\npen down\ngo to x: (240) y: (-150)\npen up\nset pen shade to (40)\nset pen size to (10)\ngo to x: (-178) y: (-131)\npen down\npen up\nset pen size to (15)\ngo to x: (202) y: (-157)\npen down\npen up\nset pen size to (20)\ngo to x: (-84) y: (-148)\npen down\npen up\nset pen size to (10)\ngo to x: (68) y: (-141)\npen down\npen up\nset pen color to (#5cb712)\nset pen size to (14)\nset pen shade to (40)\ngo to x: (-240) y: (-114)\npen down\ngo to x: (240) y: (-114)\npen up\nset pen color to (#5cb712)\nset pen size to (6)\nset pen shade to (20)\ngo to x: (-240) y: (-118)\npen down\ngo to x: (240) y: (-118)\npen up\n\ndefine Level 1\nDestination at (201) (-79)\nDraw Line From (-77) (-111) to (-77) (1)\nGround\n\ndefine None\npen up\nset pen color to (#4a6cd4)\nset pen size to (30)\nset pen shade to (70)\ngo to x: (x1) y: ((y1) + ((5) * ([sin v] of ((tick) * (10)) )))\npen down\npen up\n\nwhen flag clicked\nerase all\nforever\n    change [tick v] by (1)\nend\n\nerase all\n\nLevel 1\n\ndefine None\npen up\nset pen color to (#5cb712)\nset pen shade to (40)\nset pen size to (14)\ngo to x: (x1) y: (y1)\npen down\ngo to x: (x2) y: (y2)\npen up\n\ndefine Level 2\nDestination at (162) (110)\nDraw Line From (-92) (-60) to (-30) (-60)\nDraw Line From (22) (1) to (84) (1)\nDraw Line From (130) (63) to (193) (63)\nGround\n\ndefine None\npen up\nset pen color to (#ff0000)\nset pen shade to (70)\nset pen size to (14)\ngo to x: (x1) y: (y1)\npen down\ngo to x: (x2) y: (y2)\npen up\n\nwhen flag clicked\nset [tick v] to [0]\nset [level v] to [1]\n\ndefine Level 3\nDraw Lava From (-33) (3) to (-33) (-110)\nDraw Lava From (63) (180) to (63) (30)\nDraw Line From (-40) (-111) to (-40) (3)\nDraw Line From (70) (180) to (70) (30)\nDestination at (201) (-79)\nDraw Lava From (60) (-105) to (100) (-105)\nGround\n\nDraw Lava From (-118) (-114) to (240) (-114)\n\ndefine Level 4\nDraw Lava From (-137) (-106) to (1) (-106)\nDraw Lava From (-128) (48) to (-128) (-152)\nDraw Lava From (-9) (-152) to (-9) (-80)\nDraw Lava From (69) (180) to (69) (-40)\nDraw Lava From (89) (-40) to (89) (180)\nDraw Line From (-138) (-114) to (-138) (50)\nDraw Line From (1) (-114) to (1) (120)\nDraw Line From (79) (180) to (79) (-40)\nDraw Line From (160) (101) to (240) (101)\nDraw Line From (160) (101) to (160) (-114)\nDestination at (194) (137)\nGround\n\nwhen flag clicked\nforever\n    if <(Level) = [1]> then\n        erase all\n        Level 1\n    end\n    if <(Level) = [2]> then\n        erase all\n        Level 2\n    end\n    if <(Level) = [3]> then\n        erase all\n        Level 3\n    end\n    if <(Level) = [4]> then\n        erase all\n        Level 4\n    end\n    if <(Level) = [5]> then\n        erase all\n        Level 5\n    end\n    if <(Level) = [6]> then\n        erase all\n        Level 6\n    end\n    if <(Level) = [7]> then\n        erase all\n        Level 7\n    end\n    if <(Level) = [8]> then\n        erase all\n        Level 8\n    end\n    if <(Level) = [9]> then\n        erase all\n        Level 9\n    end\n    if <(Level) = [10]> then\n        erase all\n        Last level\n    end\nend\n\ndefine Level 5\nDraw Lava From (-98) (-114) to (-98) (30)\nDraw Lava From (-91) (-106) to (-29) (-106)\nDraw Lava From (94) (20) to (94) (94)\nDraw Bouncy From (-188) (-106) to (-91) (-106)\nDraw Line From (-88) (-114) to (-88) (50)\nDraw Line From (-88) (50) to (-50) (50)\nDraw Line From (15) (180) to (15) (-33)\nDraw Line From (104) (-114) to (104) (94)\nDraw Line From (104) (94) to (75) (94)\nDraw Line From (172) (13) to (240) (13)\nDestination at (206) (50)\nGround\n\nchange [level v] by (1)\n\ndefine None\npen up\nset pen color to (#5cb712)\nset pen shade to (40)\nset pen size to (pensize)\ngo to x: (x1) y: (y1)\npen down\ngo to x: (x2) y: (y2)\npen up\n\ndefine Level 7\nDraw Lava From (-139) (-106) to (0) (-106)\nDraw Lava From (-10) (-20) to (-10) (100)\nDraw Lava From (-10) (90) to (-123) (90)\nDraw Lava From (-123) (90) to (-123) (50)\nDraw Lava From (-65) (100) to (-65) (150)\nDraw Lava From (65) (-49) to (65) (1)\nDraw Lava From (115) (55) to (115) (100)\nDraw Bouncy From (0) (-106) to (47) (-106)\nDraw Small Line From (0) (-105) to (0) (100) (14)\nDraw Small Line From (-70) (-59) to (-4) (-59) (14)\nDraw Small Line From (-240) (-2) to (-168) (-2) (14)\nDraw Small Line From (-130) (100) to (0) (100) (14)\nDraw Small Line From (-130) (100) to (-130) (50) (14)\nDraw Small Line From (60) (-50) to (60) (180) (14)\nDraw Small Line From (120) (-114) to (120) (100) (14)\nDraw Small Line From (121) (46) to (240) (46) (14)\nDestination at (180) (86)\nGround\n\nset [yv v] to [0]\n\nDraw Small Line From (131) (-3) to (240) (-3) (14)\nDraw Bouncy From (-60) (-78) to (-30) (-78)\n\ndefine Level 8\nDraw Lava From (-30) (-106) to (-5) (-106)\nDraw Lava From (-52) (41) to (-45) (41)\nDraw Lava From (-177) (-30) to (-177) (-28)\nDraw Lava From (-52) (53) to (-45) (53)\nDraw Lava From (1) (53) to (17) (53)\nDraw Lava From (1) (41) to (17) (41)\nDraw Bouncy From (-52) (-30) to (-45) (-30)\nDraw Small Line From (-240) (-36) to (100) (-36) (14)\nDraw Small Line From (240) (47) to (-147) (47) (14)\nDraw Small Line From (-147) (47) to (-147) (35) (14)\nElevator Wall at (168) (0)\nDestination at (169) (82)\nGround\n\ndefine None\npen up\nset pen color to (#8a55d7)\nset pen shade to (80)\nset pen size to (14)\ngo to x: (x1) y: (y1)\npen down\ngo to x: (x2) y: (y2)\npen up\n\nrepeat (200)\n    change [elevator v] by (-1)\nend\n\nwhen flag clicked\nset [elevator v] to [0]\nforever\n    repeat (10)\n        change [elevator v] by (10)\n    end\n    repeat (20)\n        change [elevator v] by (-10)\n    end\n    repeat (10)\n        change [elevator v] by (10)\n    end\nend\n\ndefine None\npen up\nset pen color to (#5cb712)\nset pen shade to (40)\nset pen size to (14)\ngo to x: ((x original point) + (0)) y: ((y original point) + ((0.25) * (elevator)))\npen down\ngo to x: ((x original point) + (0)) y: ((y original point) + (((0.25) * (elevator)) - (70)))\npen up\n\ndefine Level 9\nDraw Lava From (-209) (-37) to (-209) (-42)\nDraw Lava From (-179) (-114) to (-179) (-108)\nDraw Lava From (-149) (-37) to (-149) (-42)\nDraw Lava From (-119) (-114) to (-119) (-108)\nDraw Lava From (-89) (-37) to (-89) (-42)\nDraw Lava From (-59) (-114) to (-59) (-108)\nDraw Lava From (-29) (-37) to (-29) (-42)\nDraw Lava From (1) (-114) to (1) (-108)\nDraw Lava From (-239) (30) to (-239) (36)\nDraw Lava From (-179) (30) to (-179) (36)\nDraw Lava From (-119) (30) to (-119) (36)\nDraw Lava From (-59) (30) to (-59) (36)\nDraw Lava From (1) (30) to (1) (36)\nDraw Small Line From (-240) (-36) to (50) (-36) (14)\nDraw Small Line From (-240) (30) to (50) (30) (14)\nDraw Small Line From (50) (-36) to (50) (30) (14)\nDraw Small Line From (-149) (102) to (-89) (110) (14)\nDraw Small Line From (-29) (115) to (31) (100) (14)\nDraw Small Line From (91) (113) to (240) (113) (14)\nElevator Wall at (120) (20)\nDestination at (200) (150)\nGround\n\nDraw Lava From (-89) (30) to (-149) (36)\n\nDraw Lava From (-119) (-114) to (-119) (-108)\nDraw Lava From (-89) (-37) to (-89) (-42)\nDraw Lava From (-59) (-114) to (-59) (-108)\nDraw Lava From (-29) (-37) to (-29) (-42)\nDraw Lava From (1) (-114) to (1) (-108)\n\ndefine Last level\nGround\n\ndefine Level 6\nDraw Small Line From (-160) (-114) to (-160) (90) (14)\nDraw Small Line From (-160) (20) to (-110) (20) (14)\nDraw Lava From (-65) (-60) to (-87) (-60)\nDraw Lava From (-60) (10) to (-60) (10)\nDraw Lava From (3) (90) to (3) (70)\nDraw Lava From (81) (53) to (81) (100)\nDraw Small Line From (81) (50) to (81) (-114) (14)\nDraw Small Line From (-60) (-60) to (-60) (180) (14)\nDraw Small Line From (11) (-114) to (11) (100) (14)\nDraw Small Line From (11) (100) to (-10) (100) (14)\nDraw Small Line From (39) (53) to (17) (53) (14)\nDraw Small Line From (39) (53) to (150) (53) (14)\nDraw Small Line From (150) (-114) to (150) (100) (14)\nDraw Small Line From (150) (100) to (240) (100) (14)\nDestination at (190) (130)\nGround\n\n@Sprite2\n\ndefine Respawn\nset [xv v] to [0]\nset [yv v] to [0]\nclear graphic effects\nset size to (101) %\ngo to x: (item (((Level) * (2)) - (1)) of [_loc_ v]) y: (item ((Level) * (2)) of [_loc_ v])\nshow\n\nwhen flag clicked\nset size to (101) %\nhide\nwait (0.1) seconds\nRespawn\nforever\n    change [yv v] by (-1)\n    change y by (yv)\n    Touch Ground <(yv) > [0]>\n    set [xv v] to ((xv) * (0.67))\n    if <key (left arrow v) pressed?> then\n        change [xv v] by (-1.7)\n    end\n    if <key (right arrow v) pressed?> then\n        change [xv v] by (1.7)\n    end\n    if <([abs v] of (xv) ) > [0.3]> then\n        Run (xv) WJ (15) (6)\n    end\n    if <<key (up arrow v) pressed?> and <(falling?) < [3]>> then\n        set [yv v] to [11]\n        set [falling? v] to [6]\n    end\n    if <touching color (#b37fff)?> then\n        set [test v] to [1]\n        set [yv v] to [19]\n        set [falling? v] to [10]\n    end\n    if <touching color (#547eff)?> then\n        change [level v] by (1)\n        Respawn\n    end\n    if <touching color (#ff5454)?> then\n        repeat (10)\n            change [ghost v] effect by (10)\n        end\n        Respawn\n    end\n    if <(y position) < [-120]> then\n        Respawn\n    end\nend\n\ndefine Touch Ground <up?>\nchange [falling? v] by (1)\nrepeat until <not <touching color (#5ed400)?>>\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 [yv v] to [0]\nend\n\ndefine Run (speed) WJ (x) (y)\nchange x by (speed)\npoint in direction (0)\nset [slope v] to [0]\nrepeat until <<(SLOPE) = [8]> or <not <touching color (#5ed400)?>>>\n    change y by (1)\n    change [slope v] by (1)\nend\nif <(SLOPE) = [8]> then\n    change y by ((0) - (SLOPE))\n    if <key (up arrow v) pressed?> then\n        if <<key (right arrow v) pressed?> or <key (left arrow v) pressed?>> then\n            if <(speed) < [0]> then\n                set [xv v] to (x)\n            else\n                set [xv v] to ((0) - (x))\n            end\n            set [yv v] to (y)\n        end\n    end\n    repeat until <not <touching color (#5ed400)?>>\n        if <(speed) > [0]> then\n            change x by (-1)\n        else\n            change x by (1)\n        end\n    end\nend\n\nset size to (100) %\n\nchange size by (-1)\n\n@Sprite3\n\nwhen flag clicked\ngo to x: (0) y: (0)\nset [ghost v] effect to (100)\n\n@ \n\nwhen flag clicked\nhide\ngo to x: (0) y: (50)\nwait (1) seconds\nwait until <(Level) = [10]>\nset size to (5) %\nshow\nrepeat until <(round (size)) = [110]>\n    change size by (((110) - (size)) / (8))\nend\n\nwhen flag clicked\nforever\n    set y to ((([sin v] of ((tick) * (5)) ) * (10)) + (50))\nend\n\n