' ' ' Shadez the Ninja ' ' \ÚÄ¿ ' /³ ³ ' ÀÂÙ / ' ³Ä// ' ³Ä/ ' ³ ' / \ ' ³ ³ ' DECLARE SUB Punch () DECLARE SUB Kick () DECLARE SUB ThrowStar () DECLARE SUB GetGraphics1 () DECLARE SUB SetupScreen1 () DECLARE SUB PlayLevel1 () DECLARE SUB Boss1 () DECLARE SUB TheStory () DECLARE SUB Died () DECLARE SUB PutGuyThere (num, height, length, min, max, typ, way, direc, enem) DECLARE SUB NeatFont (txt$, sx%, sy%, clr%, size%) DECLARE SUB DealWithBadguys () DECLARE FUNCTION Writeout$ (word$, length, row, col) DIM SHARED txt AS STRING, sx%, sy%, clr%, size% DIM SHARED points AS INTEGER DIM SHARED star AS INTEGER, health AS INTEGER DIM SHARED enemy.h(1 TO 99), enemy.t(1 TO 99), enemy.l(1 TO 99) DIM SHARED enemy.min(1 TO 99), enemy.max(1 TO 99), enemy.d(1 TO 99) DIM SHARED enemy.w(1 TO 99), enemy.life(1 TO 99), enemy.n(1 TO 2) DIM SHARED enemy(1 TO 99), e(1 TO 99) DIM SHARED extra.d, extra.l, extra.r DIM SHARED disks AS INTEGER, disc(1 TO 20) DIM SHARED over AS INTEGER, up AS INTEGER DIM SHARED o AS INTEGER, u AS INTEGER DIM SHARED level(1 TO 10) AS STRING DIM SHARED l(0 TO 5) AS STRING DIM SHARED stopwriting AS INTEGER DIM SHARED a AS STRING, h AS INTEGER DIM SHARED position AS STRING DIM SHARED direction AS STRING DIM SHARED speed AS INTEGER DIM SHARED fall AS INTEGER DIM SHARED save(700) DIM SHARED body.l(700), body.r(700), body.f(700) DIM SHARED save1(700) DIM SHARED save2(700) DIM SHARED save3(700) DIM SHARED save4(700) DIM SHARED kick.nr(300), kick.nl(300), kick.kr(300) DIM SHARED kick.kl(300), punch.nr(300), punch.nl(300) DIM SHARED punch.pr(300), punch.pl(300) DIM SHARED ninja1(700), ninja1.r(700) DIM SHARED ninja2(700), ninja2.r(700) DIM SHARED ninja3(700), ninja3.r(700) DIM SHARED ninja4(700), ninja4.r(700) DIM SHARED ninja.star(300), disk(300) DIM SHARED brick(300), fireplace(300) DIM SHARED crate(300), windo(300) DIM SHARED door.t(300), door.m(300), door.b(300) DIM SHARED ladder(300), ladder.b(300) DIM SHARED needle.b(300), needle.p(300) DIM SHARED trash.t(300), trash.b(300) RANDOMIZE TIMER CLS : SCREEN 12 CALL NeatFont("Shadez", -1, 100, 4, 4) CALL NeatFont("the", -1, 150, 4, 4) CALL NeatFont("Ninja", -1, 200, 4, 4) WHILE INKEY$ = "": WEND CALL TheStory GOSUB MakeLevel1 CALL SetupScreen1 CALL PlayLevel1 MakeLevel1: l$(0) = " " l$(1) = " TUVW " l$(2) = " J S " l$(3) = " DE I N R " l$(4) = " ABCFGHIKLMOPQXYZ " l$(5) = " " position$ = "A": o = 2: u = 4: speed = 170 FOR i = 1 TO 99 e(i) = 11 enemy.life(i) = 5 enemy(i) = 1 NEXT i FOR i = 1 TO 20 disc(i) = 1 NEXT i CLS RETURN SUB Boss1 END SUB SUB DealWithBadguys ' enemy.l(num) = length ' enemy.h(num) = height ' enemy.t(num) = typ ' enemy.d(num) = direc ' enemy.w(num) = way ' enemy.n(enem) = num ' enemy.min(num) = min ' enemy.max(num) = max ' enemy.life(num) = 10 FOR i = 1 TO 2 IF enemy.n(i) <> 0 THEN IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.l(enemy.n(i)) - 46 <= over AND enemy.h(enemy.n(i)) = up THEN enemy.w(enemy.n(i)) = 3 IF enemy.d(enemy.n(i)) = 2 AND enemy.l(enemy.n(i)) + 46 >= over AND enemy.h(enemy.n(i)) = up THEN enemy.w(enemy.n(i)) = 3 IF enemy.d(enemy.n(i)) = 1 AND enemy.l(enemy.n(i)) - 46 > over AND enemy.h(enemy.n(i)) = up AND enemy.w(enemy.n(i)) = 3 THEN enemy.w(enemy.n(i)) = 1 IF enemy.d(enemy.n(i)) = 2 AND enemy.l(enemy.n(i)) + 46 < over AND enemy.h(enemy.n(i)) = up AND enemy.w(enemy.n(i)) = 3 THEN enemy.w(enemy.n(i)) = 1 IF enemy.w(enemy.n(i)) = 1 THEN enemy.l(enemy.n(i)) = enemy.l(enemy.n(i)) - 5 IF enemy.l(enemy.n(i)) < enemy.min(enemy.n(i)) THEN enemy.l(enemy.n(i)) = enemy.min(enemy.n(i)) enemy.w(enemy.n(i)) = 2 END IF END IF IF enemy.w(enemy.n(i)) = 2 THEN enemy.l(enemy.n(i)) = enemy.l(enemy.n(i)) + 5 IF enemy.l(enemy.n(i)) > enemy.max(enemy.n(i)) THEN enemy.l(enemy.n(i)) = enemy.max(enemy.n(i)) enemy.w(enemy.n(i)) = 1 END IF END IF IF enemy.w(enemy.n(i)) = 3 THEN IF e(enemy.n(i)) <> enemy.life(enemy.n(i)) THEN LOCATE 2, 58: PRINT " " FOR h = 65 TO 65 + enemy.life(enemy.n(i)) COLOR 1: LOCATE 2, h: PRINT "Û" NEXT h COLOR 15: LOCATE 2, 58: PRINT "Enemy: " e(enemy.n(i)) = enemy.life(enemy.n(i)) END IF willhefight = INT(RND * 3) + 1 IF willhefight <> 3 THEN IF enemy.t(enemy.n(i)) = 1 THEN guyclr = 1 IF enemy.t(enemy.n(i)) = 2 THEN guyclr = 14 IF enemy.t(enemy.n(i)) = 3 THEN guyclr = 2 IF enemy.t(enemy.n(i)) = 4 THEN guyclr = 5 IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4.r, XOR IF enemy.d(enemy.n(i)) = 1 THEN LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)), enemy.h(enemy.n(i)) + 110), 0 LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) - 10, enemy.h(enemy.n(i)) + 80), guyclr CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) - 10, enemy.h(enemy.n(i)) + 80), 0 LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)), enemy.h(enemy.n(i)) + 110), guyclr END IF IF enemy.d(enemy.n(i)) = 2 THEN LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) + 40, enemy.h(enemy.n(i)) + 110), 0 LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) + 50, enemy.h(enemy.n(i)) + 80), guyclr CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) + 40, enemy.h(enemy.n(i)) + 110), guyclr LINE (enemy.l(enemy.n(i)) + 20, enemy.h(enemy.n(i)) + 85)-(enemy.l(enemy.n(i)) + 50, enemy.h(enemy.n(i)) + 80), 0 END IF health = health - 1 IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4.r, XOR END IF END IF IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4.r, XOR END IF NEXT i END SUB SUB Died END SUB SUB GetGraphics1 CLS : SCREEN 12 FOR i = 1 TO 15 PALETTE i, 0 NEXT i 'Shadez from the front CIRCLE (50, 50), 20, 15: PAINT (50, 50), 15 LINE (34, 38)-(66, 41), 5, BF: LINE (50, 115)-(50, 70), 15 LINE (50, 95)-(30, 75), 15: LINE (50, 95)-(70, 75), 15 LINE (50, 115)-(70, 140), 15: LINE (50, 115)-(30, 140), 15 CIRCLE (44, 48), 3, 7: PAINT (44, 48), 7: CIRCLE (56, 48), 3, 7 PAINT (56, 48), 7: LINE (56, 48)-(44, 48), 7 LINE (56, 48)-(68, 46), 7: LINE (44, 48)-(32, 46), 7 GET (30, 30)-(70, 140), body.f: CLS 'Shadez going left CIRCLE (50, 50), 20, 15: PAINT (50, 50), 15 LINE (34, 38)-(66, 41), 5, BF: LINE (50, 115)-(50, 70), 15 LINE (50, 95)-(40, 99), 15: LINE (40, 99)-(30, 75), 15 LINE (50, 95)-(42, 93), 15: LINE (42, 93)-(35, 75), 15 LINE (50, 115)-(70, 140), 15: LINE (50, 115)-(30, 140), 15 CIRCLE (40, 48), 3, 7: PAINT (40, 48), 7 LINE (40, 48)-(57, 48), 7: LINE (57, 48)-(60, 52), 7 GET (30, 30)-(70, 140), body.l: CLS 'Shadez going right CIRCLE (50, 50), 20, 15: PAINT (50, 50), 15 LINE (34, 38)-(66, 41), 5, BF: LINE (50, 115)-(50, 70), 15 LINE (50, 95)-(60, 99), 15: LINE (60, 99)-(70, 75), 15 LINE (50, 95)-(58, 93), 15: LINE (58, 93)-(65, 75), 15 LINE (50, 115)-(70, 140), 15: LINE (50, 115)-(30, 140), 15 CIRCLE (60, 48), 3, 7: PAINT (60, 48), 7 LINE (60, 48)-(43, 48), 7: LINE (43, 48)-(40, 52), 7 GET (30, 30)-(70, 140), body.r: CLS 'A bad ninja guy CIRCLE (50, 50), 20, 1: PAINT (50, 50), 1 LINE (34, 38)-(66, 41), 14, BF: LINE (50, 115)-(50, 70), 1 LINE (50, 95)-(40, 99), 1: LINE (40, 99)-(30, 75), 1 LINE (50, 95)-(42, 93), 1: LINE (42, 93)-(35, 75), 1 LINE (50, 115)-(70, 140), 1: LINE (50, 115)-(30, 140), 1 CIRCLE (40, 48), 3, 0: PAINT (40, 48), 0 GET (30, 30)-(70, 140), ninja1: CLS 'Another bad ninja CIRCLE (50, 50), 20, 14: PAINT (50, 50), 14 LINE (34, 38)-(66, 41), 4, BF: LINE (50, 115)-(50, 70), 14 LINE (50, 95)-(40, 99), 14: LINE (40, 99)-(30, 75), 14 LINE (50, 95)-(42, 93), 14: LINE (42, 93)-(35, 75), 14 LINE (50, 115)-(70, 140), 14: LINE (50, 115)-(30, 140), 14 CIRCLE (40, 48), 3, 0: PAINT (40, 48), 0 GET (30, 30)-(70, 140), ninja2: CLS 'Another bad ninja CIRCLE (50, 50), 20, 2: PAINT (50, 50), 2 LINE (34, 38)-(66, 41), 12, BF: LINE (50, 115)-(50, 70), 2 LINE (50, 95)-(40, 99), 2: LINE (40, 99)-(30, 75), 2 LINE (50, 95)-(42, 93), 2: LINE (42, 93)-(35, 75), 2 LINE (50, 115)-(70, 140), 2: LINE (50, 115)-(30, 140), 2 CIRCLE (40, 48), 3, 0: PAINT (40, 48), 0 GET (30, 30)-(70, 140), ninja3: CLS 'Another bad ninja CIRCLE (50, 50), 20, 5: PAINT (50, 50), 5 LINE (34, 38)-(66, 41), 7, BF: LINE (50, 115)-(50, 70), 5 LINE (50, 95)-(40, 99), 5: LINE (40, 99)-(30, 75), 5 LINE (50, 95)-(42, 93), 5: LINE (42, 93)-(35, 75), 5 LINE (50, 115)-(70, 140), 5: LINE (50, 115)-(30, 140), 5 CIRCLE (40, 48), 3, 0: PAINT (40, 48), 0 GET (30, 30)-(70, 140), ninja4: CLS 'A brick, ooo, wow LINE (30, 30)-(70, 70), 4, BF: LINE (30, 35)-(70, 35), 0 LINE (30, 45)-(70, 45), 0: LINE (30, 55)-(70, 55), 0 LINE (30, 65)-(70, 65), 0 LINE (35, 30)-(35, 35), 0: LINE (55, 30)-(55, 35), 0 LINE (45, 35)-(45, 45), 0: LINE (65, 35)-(65, 45), 0 LINE (35, 45)-(35, 55), 0: LINE (55, 45)-(55, 55), 0 LINE (45, 55)-(45, 65), 0: LINE (65, 55)-(65, 65), 0 LINE (35, 65)-(35, 70), 0: LINE (55, 65)-(55, 70), 0 GET (30, 30)-(70, 70), brick: CLS 'A crate, big deal LINE (30, 30)-(70, 70), 13, BF: LINE (38, 38)-(62, 62), 0, B LINE (32, 32)-(35, 35), 0, BF: LINE (65, 32)-(68, 35), 0, BF LINE (32, 65)-(35, 68), 0, BF: LINE (65, 65)-(68, 68), 0, BF LINE (38, 30)-(38, 70), 0: LINE (62, 30)-(62, 70), 0 LINE (38, 62)-(62, 38), 0: LINE (38, 38)-(62, 62), 0 LINE (30, 30)-(70, 70), 0, B GET (30, 30)-(70, 70), crate: CLS 'A glass window LINE (31, 31)-(69, 69), 1, BF: LINE (50, 30)-(50, 70), 0 LINE (30, 50)-(70, 50), 0: GET (30, 30)-(70, 70), windo: CLS 'Top of the a door PUT (30, 30), brick: LINE (30, 50)-(70, 70), 6, BF CIRCLE (50, 50), 20, 6: PAINT (50, 45), 6 LINE (50, 31)-(50, 70), 0: LINE (62, 35)-(62, 70), 0 LINE (38, 35)-(38, 70), 0: GET (30, 30)-(70, 70), door.t: CLS 'Middle of a door LINE (30, 30)-(70, 70), 6, BF: LINE (50, 30)-(50, 70), 0 LINE (62, 30)-(62, 70), 0: LINE (38, 30)-(38, 70), 0 CIRCLE (62, 50), 4, 14: PAINT (62, 50), 14 GET (30, 30)-(70, 70), door.m: CLS 'Bottom of a door LINE (30, 30)-(70, 70), 6, BF: LINE (50, 30)-(50, 70), 0 LINE (62, 30)-(62, 70), 0: LINE (38, 30)-(38, 70), 0 GET (30, 30)-(70, 70), door.b: CLS 'A ladder, to climb on duh PUT (30, 30), brick: LINE (33, 30)-(33, 70), 7 LINE (67, 30)-(67, 70), 7: LINE (33, 42)-(67, 42), 7 LINE (33, 62)-(67, 62), 7: GET (30, 30)-(70, 70), ladder.b: CLS 'A ladder, to climb on duh LINE (33, 30)-(33, 70), 7: LINE (67, 30)-(67, 70), 7 LINE (33, 42)-(67, 42), 7: LINE (33, 62)-(67, 62), 7 GET (30, 30)-(70, 70), ladder: CLS 'Ninja star LINE (35, 35)-(32, 40), 7: LINE (35, 35)-(38, 40), 7 LINE (32, 40)-(27, 43), 7: LINE (27, 43)-(32, 46), 7 LINE (32, 46)-(35, 51), 7: LINE (35, 51)-(38, 46), 7 LINE (38, 46)-(43, 43), 7: LINE (43, 43)-(38, 40), 7 PAINT (35, 43), 7: CIRCLE (35, 43), 2, 0: PAINT (35, 43), 0 GET (15, 23)-(55, 63), ninja.star: CLS 'Fireplace top PUT (30, 30), brick: LINE (30, 30)-(70, 39), 0, BF LINE (30, 40)-(70, 49), 8, BF GET (30, 30)-(70, 70), fireplace: CLS 'The top of the Space Needle LOCATE 12, 10: PRINT "Setting Up Graphics" LINE (50, 30)-(30, 70), 8: LINE (50, 30)-(70, 70), 8 LINE (30, 70)-(70, 70), 8: PAINT (50, 50), 8 GET (30, 30)-(70, 70), needle.p: CLS 'The top of a trash can LINE (30, 50)-(70, 70), 8, BF: CIRCLE (50, 50), 20, 0, , , .3 PAINT (50, 52), 0: CIRCLE (50, 50), 20, 8, , , .3 LINE (30, 65)-(70, 65), 0: GET (30, 30)-(70, 70), trash.t: CLS 'The bottom of a trash can CIRCLE (50, 64), 20, 8, , , .3: PAINT (50, 64), 8 LINE (30, 30)-(70, 64), 8, BF: LINE (30, 38)-(70, 38), 0 LINE (30, 51)-(70, 51), 0: LINE (30, 64)-(70, 64), 0 GET (30, 30)-(70, 70), trash.b: CLS 'A bad ninja guy CIRCLE (50, 50), 20, 1: PAINT (50, 50), 1 LINE (34, 38)-(66, 41), 14, BF: LINE (50, 115)-(50, 70), 1 LINE (50, 95)-(60, 99), 1: LINE (60, 99)-(70, 75), 1 LINE (50, 95)-(58, 93), 1: LINE (58, 93)-(65, 75), 1 LINE (50, 115)-(70, 140), 1: LINE (50, 115)-(30, 140), 1 CIRCLE (60, 48), 3, 0: PAINT (60, 48), 0 GET (30, 30)-(70, 140), ninja1.r: CLS 'Another bad ninja CIRCLE (50, 50), 20, 14: PAINT (50, 50), 14 LINE (34, 38)-(66, 41), 4, BF: LINE (50, 115)-(50, 70), 14 LINE (50, 95)-(60, 99), 14: LINE (60, 99)-(70, 75), 14 LINE (50, 95)-(58, 93), 14: LINE (58, 93)-(65, 75), 14 LINE (50, 115)-(70, 140), 14: LINE (50, 115)-(30, 140), 14 CIRCLE (60, 48), 3, 0: PAINT (60, 48), 0 GET (30, 30)-(70, 140), ninja2.r: CLS 'Another bad ninja CIRCLE (50, 50), 20, 2: PAINT (50, 50), 2 LINE (34, 38)-(66, 41), 12, BF: LINE (50, 115)-(50, 70), 2 LINE (50, 95)-(60, 99), 2: LINE (60, 99)-(70, 75), 2 LINE (50, 95)-(58, 93), 2: LINE (58, 93)-(65, 75), 2 LINE (50, 115)-(70, 140), 2: LINE (50, 115)-(30, 140), 2 CIRCLE (60, 48), 3, 0: PAINT (60, 48), 0 GET (30, 30)-(70, 140), ninja3.r: CLS 'Another bad ninja CIRCLE (50, 50), 20, 5: PAINT (50, 50), 5 LINE (34, 38)-(66, 41), 7, BF: LINE (50, 115)-(50, 70), 5 LINE (50, 95)-(60, 99), 5: LINE (60, 99)-(70, 75), 5 LINE (50, 95)-(58, 93), 5: LINE (58, 93)-(65, 75), 5 LINE (50, 115)-(70, 140), 5: LINE (50, 115)-(30, 140), 5 CIRCLE (60, 48), 3, 0: PAINT (60, 48), 0 GET (30, 30)-(70, 140), ninja4.r: CLS 'A disk to your computer LINE (45, 45)-(55, 55), 12, BF: LINE (45, 50)-(55, 55), 7, BF LINE (47, 52)-(53, 55), 8, BF: GET (30, 30)-(70, 70), disk: CLS 'Your limbs LINE (50, 115)-(70, 140), 15: LINE (50, 115)-(30, 140), 15 LINE (50, 95)-(40, 99), 15: LINE (40, 99)-(30, 75), 15 LINE (50, 95)-(42, 93), 15: LINE (42, 93)-(35, 75), 15 LINE (50, 95)-(60, 99), 15: LINE (60, 99)-(70, 75), 15 LINE (50, 95)-(58, 93), 15: LINE (58, 93)-(65, 75), 15 GET (50, 115)-(70, 140), kick.nr: GET (30, 115)-(50, 140), kick.nl GET (30, 75)-(50, 99), punch.nl: GET (50, 75)-(70, 99), punch.nr: CLS LINE (20, 110)-(50, 115), 15: LINE (50, 115)-(80, 110), 15 GET (20, 110)-(50, 115), kick.kl: GET (50, 110)-(80, 115), kick.kr LINE (50, 95)-(42, 93), 15: LINE (42, 93)-(35, 75), 15 LINE (23, 95)-(50, 96), 15: LINE (50, 95)-(77, 94), 15 LINE (50, 95)-(58, 93), 15: LINE (58, 93)-(65, 75), 15 GET (23, 75)-(50, 96), punch.pl: GET (50, 75)-(77, 96), punch.pr: CLS PALETTE greenbig = 1: bluebig = 0: redbig = 1: red = 0: green = 0: blue = 0 FOR i = 30 TO 61 red = red + redbig: blue = blue + bluebig: green = green + greenbig NEXT PALETTE 13, 65536 * INT(blue) + 256 * INT(green) + INT(red) END SUB SUB Kick IF direction$ <> "body.f" THEN IF direction$ = "body.l" THEN PUT (over, up + 85), kick.nl, XOR PUT (over - 10, up + 81), kick.kl CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND IF enemy.n(1) <> 0 THEN IF over - 48 <= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 2 AND up <= enemy.h(enemy.n(1)) THEN enemy.life(enemy.n(1)) = enemy.life(enemy.n(1)) - 1 END IF IF enemy.n(2) <> 0 THEN IF over - 48 <= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 2 AND up <= enemy.h(enemy.n(2)) THEN enemy.life(enemy.n(2)) = enemy.life(enemy.n(2)) - 1 END IF PUT (over - 10, up + 81), kick.kl, XOR PUT (over, up + 85), kick.nl, OR END IF IF direction$ = "body.r" THEN PUT (over + 20, up + 85), kick.nr, XOR PUT (over + 20, up + 81), kick.kr CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND IF enemy.n(1) <> 0 THEN IF over + 48 >= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 1 AND up <= enemy.h(enemy.n(1)) THEN enemy.life(enemy.n(1)) = enemy.life(enemy.n(1)) - 1 END IF IF enemy.n(2) <> 0 THEN IF over + 48 >= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 1 AND up <= enemy.h(enemy.n(2)) THEN enemy.life(enemy.n(2)) = enemy.life(enemy.n(2)) - 1 END IF PUT (over + 20, up + 81), kick.kr, XOR PUT (over + 20, up + 85), kick.nr, OR END IF END IF END SUB SUB NeatFont (txt$, sx%, sy%, clr%, size%) lnh% = LEN(txt$) IF sx% = -1 THEN sx% = (640 - ((lnh% * 8) * size%)) / 2 sx2% = sx%: lx% = lnh% * 8 COLOR 8: LOCATE 1, 1: PRINT txt$ FOR y% = 0 TO 15 FOR x% = 0 TO lx% IF POINT(x%, y%) = 8 THEN LINE (sx2% - (size% / 2), sy% - size%)-(sx2% - size%, sy%), clr% LINE (sx2% - (size% / 2), sy% - size%)-(sx2%, sy%), clr% LINE (sx2% - size%, sy%)-(sx2%, sy%), clr% END IF sx2% = sx2% + size% NEXT x% sy% = sy% + size%: sx2% = sx% NEXT y% LOCATE 1, 1: COLOR 0: PRINT txt$ END SUB SUB PlayLevel1 over = 90: up = 340: points = 0: disks = 0 star = 0: health = 30: direction$ = "body.r": fall = 0 NextScreen1: GET (over, up)-(over + 40, up + 110), save IF direction$ = "body.r" THEN PUT (over, up), body.r, OR IF direction$ = "body.l" THEN PUT (over, up), body.l, OR IF direction$ = "body.f" THEN PUT (over, up), body.f, OR DO key$ = INKEY$ SELECT CASE key$ CASE "/": CALL Punch CASE "'": CALL Kick CASE CHR$(0) + "H" IF fall = 0 THEN direction$ = "body.f" jumped = 0 DO PUT (over, up), save, PSET up = up - 16 jumped = jumped + 1 IF up < 41 THEN IF MID$(l$(u - 1), o, 1) = " " THEN up = 41 IF MID$(l$(u - 1), o, 1) <> " " THEN position$ = MID$(l$(u - 1), o, 1) u = u - 1 up = 330 CALL SetupScreen1 GOSUB NextScreen1 END IF END IF GET (over, up)-(over + 40, up + 110), save PUT (over, up), body.f, OR FOR f! = 1 TO speed WAIT &H3DA, 8 NEXT f! LOOP UNTIL jumped = 4 END IF CASE CHR$(0) + "P" direction$ = "body.f" IF POINT(over + 20, up + 111) <> 8 AND POINT(over + 20, up + 111) <> 13 THEN PUT (over, up), save, PSET up = up + 20 IF up > 340 THEN IF MID$(l$(u + 1), o, 1) = " " THEN up = 340 IF MID$(l$(u + 1), o, 1) <> " " THEN position$ = MID$(l$(u + 1), o, 1) u = u + 1 up = 41 CALL SetupScreen1 GOSUB NextScreen1 END IF END IF GET (over, up)-(over + 40, up + 110), save PUT (over, up), body.f, OR END IF CASE CHR$(0) + "M" direction$ = "body.r" PUT (over, up), save, PSET extra.r = 0 FOR f = 1 TO 20 IF POINT((over + 41) + f, up + 85) = 8 OR POINT((over + 41) + f, up + 85) = 13 THEN IF extra.r = 0 THEN over = (over - 21) + f extra.r = 1 END IF NEXT f over = over + 20 IF enemy.n(1) <> 0 THEN IF over + 43 >= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 1 AND up <= enemy.h(enemy.n(1)) THEN over = enemy.l(enemy.n(1)) - 45 END IF IF enemy.n(2) <> 0 THEN IF over + 43 >= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 1 AND up <= enemy.h(enemy.n(2)) THEN over = enemy.l(enemy.n(2)) - 45 END IF ' IF enemy.n(3) <> 0 THEN ' IF over + 43 >= enemy.l(enemy.n(3)) AND enemy.d(enemy.n(3)) = 1 AND up <= enemy.h(enemy.n(3)) THEN over = over - 20 ' END IF IF over > 570 THEN IF MID$(l$(u), o + 1, 1) = "Z" THEN IF disks = 20 THEN CALL Boss1 ELSE up = 340 END IF END IF IF MID$(l$(u), o + 1, 1) = " " THEN over = 570 IF MID$(l$(u), o + 1, 1) <> " " THEN position$ = MID$(l$(u), o + 1, 1) o = o + 1 over = 10 CALL SetupScreen1 GOSUB NextScreen1 END IF END IF GET (over, up)-(over + 40, up + 110), save PUT (over, up), body.r, OR CASE CHR$(0) + "K" direction$ = "body.l" PUT (over, up), save, PSET extra.l = 0 FOR f = 1 TO 20 IF POINT((over - 1) - f, up + 85) = 8 OR POINT((over - 1) - f, up + 85) = 13 THEN IF extra.l = 0 THEN over = (over + 21) - f extra.l = 1 END IF NEXT f IF POINT(over - 10, up + 5) = 12 THEN disks = disks + 1 over = over - 20 IF enemy.n(1) <> 0 THEN IF over - 43 <= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 2 AND up <= enemy.h(enemy.n(1)) THEN over = enemy.l(enemy.n(1)) + 45 END IF IF enemy.n(2) <> 0 THEN IF over - 43 <= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 2 AND up <= enemy.h(enemy.n(2)) THEN over = enemy.l(enemy.n(2)) + 45 END IF ' IF enemy.n(3) <> 0 THEN ' IF over - 43 <= enemy.l(enemy.n(3)) AND enemy.d(enemy.n(3)) = 2 AND up <= enemy.h(enemy.n(3)) THEN over = over + 20 ' END IF IF over < 10 THEN IF MID$(l$(u), o - 1, 1) = " " THEN over = 10 IF MID$(l$(u), o - 1, 1) <> " " THEN position$ = MID$(l$(u), o - 1, 1) o = o - 1 over = 568 CALL SetupScreen1 GOSUB NextScreen1 END IF END IF GET (over, up)-(over + 40, up + 110), save PUT (over, up), body.l, OR END SELECT IF POINT(over + 40, up + 111) = 0 OR POINT(over + 40, up + 111) = 4 OR POINT(over + 40, up + 111) = 6 OR POINT(over + 40, up + 111) = 1 OR POINT(over + 40, up + 111) = 3 THEN IF POINT(over + 20, up + 111) = 0 OR POINT(over + 20, up + 111) = 4 OR POINT(over + 20, up + 111) = 6 OR POINT(over + 20, up + 111) = 1 OR POINT(over + 20, up + 111) = 3 THEN IF POINT(over, up + 111) = 0 OR POINT(over, up + 111) = 4 OR POINT(over, up + 111) = 6 OR POINT(over, up + 111) = 1 OR POINT(over, up + 111) = 3 THEN extra.d = 0 PUT (over, up), save, PSET FOR f = 1 TO 10 IF POINT(over + 20, (up + 110) + f) <> 0 AND POINT(over + 20, (up + 110) + f) <> 4 AND POINT(over + 20, (up + 110) + f) <> 6 AND POINT(over + 20, (up + 110) + f) <> 1 AND POINT(over + 20, (up + 110) + f) <> 3 THEN IF extra.d = 0 THEN up = (up - 11) + f extra.d = 1 END IF NEXT f up = up + 10: fall = 1 IF up > 340 THEN IF MID$(l$(u + 1), o, 1) = " " THEN up = 340 IF MID$(l$(u + 1), o, 1) <> " " THEN position$ = MID$(l$(u + 1), o, 1) u = u + 1 up = 41 CALL SetupScreen1 GOSUB NextScreen1 END IF END IF GET (over, up)-(over + 40, up + 110), save IF direction$ = "body.r" THEN PUT (over, up), body.r, OR IF direction$ = "body.l" THEN PUT (over, up), body.l, OR IF direction$ = "body.f" THEN PUT (over, up), body.f, OR END IF END IF END IF IF POINT(over + 40, up + 111) <> 0 AND POINT(over + 40, up + 111) <> 4 AND POINT(over + 40, up + 111) <> 6 AND POINT(over + 40, up + 111) <> 1 AND POINT(over + 40, up + 111) <> 3 THEN fall = 0 END IF IF POINT(over + 20, up + 111) <> 0 AND POINT(over + 20, up + 111) <> 4 AND POINT(over + 20, up + 111) <> 6 AND POINT(over + 20, up + 111) <> 1 AND POINT(over + 20, up + 111) <> 3 THEN fall = 0 END IF IF POINT(over, up + 111) <> 0 AND POINT(over, up + 111) <> 4 AND POINT(over, up + 111) <> 6 AND POINT(over, up + 111) <> 1 AND POINT(over, up + 111) <> 3 THEN fall = 0 END IF COLOR 15: LOCATE 1, 1 PRINT " Points:"; points; " Ninja Stars:"; star; " Disks Left:"; 20 - disks IF h <> health THEN LOCATE 2, 3: PRINT " " LOCATE 2, 3: PRINT "Health:": COLOR 4 FOR h = 1 TO health LOCATE 2, h + 11: PRINT "Û" NEXT h END IF h = health IF enemy.n(1) <> 0 OR enemy.n(2) <> 0 THEN CALL DealWithBadguys FOR i = 1 TO 2 IF enemy.n(i) <> 0 THEN IF enemy.life(enemy.n(i)) = 0 THEN IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 1 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja1.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 2 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja2.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 3 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja3.r, XOR IF enemy.d(enemy.n(i)) = 1 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4, XOR IF enemy.d(enemy.n(i)) = 2 AND enemy.t(enemy.n(i)) = 4 THEN PUT (enemy.l(enemy.n(i)), enemy.h(enemy.n(i))), ninja4.r, XOR enemy(enemy.n(i)) = 0: enemy.n(i) = 0 LOCATE 2, 58: PRINT " " END IF END IF NEXT i END IF IF health = 0 THEN CALL Died LOOP END SUB SUB Punch IF direction$ <> "body.f" THEN IF direction$ = "body.l" THEN PUT (over, up + 45), punch.nl, XOR PUT (over - 7, up + 45), punch.pl CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND IF enemy.n(1) <> 0 THEN IF over - 48 <= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 2 AND up <= enemy.h(enemy.n(1)) THEN enemy.life(enemy.n(1)) = enemy.life(enemy.n(1)) - 1 END IF IF enemy.n(2) <> 0 THEN IF over - 48 <= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 2 AND up <= enemy.h(enemy.n(2)) THEN enemy.life(enemy.n(2)) = enemy.life(enemy.n(2)) - 1 END IF PUT (over - 7, up + 45), punch.pl, XOR PUT (over, up + 45), punch.nl, OR END IF IF direction$ = "body.r" THEN PUT (over + 20, up + 45), punch.nr, XOR PUT (over + 20, up + 45), punch.pr CurrentTimer! = TIMER: WHILE TIMER < (CurrentTimer! + 40 / 100): WEND IF enemy.n(1) <> 0 THEN IF over + 48 >= enemy.l(enemy.n(1)) AND enemy.d(enemy.n(1)) = 1 AND up <= enemy.h(enemy.n(1)) THEN enemy.life(enemy.n(1)) = enemy.life(enemy.n(1)) - 1 END IF IF enemy.n(2) <> 0 THEN IF over + 48 >= enemy.l(enemy.n(2)) AND enemy.d(enemy.n(2)) = 1 AND up <= enemy.h(enemy.n(2)) THEN enemy.life(enemy.n(2)) = enemy.life(enemy.n(2)) - 1 END IF PUT (over + 20, up + 45), punch.pr, XOR PUT (over + 20, up + 45), punch.nr, OR END IF END IF END SUB SUB PutGuyThere (num, height, length, min, max, typ, way, direc, enem) IF typ = 1 AND way = 1 THEN PUT (length, height), ninja1 IF typ = 2 AND way = 1 THEN PUT (length, height), ninja2 IF typ = 3 AND way = 1 THEN PUT (length, height), ninja3 IF typ = 4 AND way = 1 THEN PUT (length, height), ninja4 IF typ = 1 AND way = 2 THEN PUT (length, height), ninja1.r IF typ = 2 AND way = 2 THEN PUT (length, height), ninja2.r IF typ = 3 AND way = 2 THEN PUT (length, height), ninja3.r IF typ = 4 AND way = 2 THEN PUT (length, height), ninja4.r enemy.d(num) = direc enemy.l(num) = length enemy.h(num) = height enemy.t(num) = typ enemy.w(num) = way enemy.n(enem) = num enemy.min(num) = min enemy.max(num) = max END SUB SUB SetupScreen1 FOR i = 1 TO 99 e(i) = 11 NEXT i FOR i = 1 TO 2 enemy.n(i) = 0 NEXT i CLS IF position$ = "A" THEN level$(1) = " " level$(2) = " " level$(3) = " L " level$(4) = "---------l-----" level$(5) = "bbbwbbbbblbbbbb" level$(6) = "bbbbbbbbblbbbwb" level$(7) = "bbbbbbbbblbbbbb" level$(8) = "bbbbbbbbblbbbbb" level$(9) = "bbbbbbbbblbbbbb" level$(10) = "bbbbbbbbblbbbbb" IF enemy(1) = 1 THEN CALL PutGuyThere(1, 53, 50, 40, 200, 1, 2, 2, 1) IF disc(1) = 1 THEN level$(1) = "d " END IF IF position$ = "B" THEN level$(1) = " f " level$(2) = " [ " level$(3) = " L[ " level$(4) = "------------lb-" level$(5) = "bbbbbbbbbbbblbb" level$(6) = "bbwbbbbbwbbblbb" level$(7) = "bbbbbbbbbbbblbb" level$(8) = "bbbbbTbbbbbblbb" level$(9) = "bbbbbMbbbbbblbb" level$(10) = "bbbbbBbbbbbblbb" IF disc(2) = 1 THEN level$(1) = " d f " END IF IF position$ = "C" THEN level$(1) = "bbbbbblbbbbbbbb" level$(2) = "bbbbbblbbbwwbbb" level$(3) = "bbbbbblbbbwwbbb" level$(4) = "bbbbbblbbbbbbbb" level$(5) = "bbbbbblbbbbbbbb" level$(6) = "bbbbbblbbbbbcbb" level$(7) = "bbbbbblbbbbbcbb" level$(8) = "bbbbbblbbbbbcbb" level$(9) = "bbbbbblbbbbbcbb" level$(10) = "bbbbbblbbbbbcbb" END IF IF position$ = "D" THEN level$(1) = " " level$(2) = " " level$(3) = " " level$(4) = " u " level$(5) = " o L " level$(6) = "-b----l--------" level$(7) = "bbbbbblbbbbbbbb" level$(8) = "bbbbbblbbbbbbbb" level$(9) = "bbbbbblbbbbbbbb" level$(10) = "bbbbbblbbbbbbbb" IF enemy(2) = 1 THEN CALL PutGuyThere(2, 135, 135, 135, 135, 2, 2, 2, 1) IF disc(3) = 1 THEN level$(3) = " d " END IF IF position$ = "E" THEN level$(1) = " f " level$(2) = " [ " level$(3) = " [ " level$(4) = " [ " level$(5) = " L [ " level$(6) = "---------l---b-" level$(7) = "bbbbbbbbblbbbbb" level$(8) = "bbbbbbbbblbbbbb" level$(9) = "bbbbbbbbblbbbbb" level$(10) = "bbbbbbbbblbbbbb" IF enemy(3) = 1 THEN CALL PutGuyThere(3, 135, 455, 455, 455, 3, 1, 1, 1) IF disc(4) = 1 THEN level$(3) = " d[ " END IF IF position$ = "F" THEN level$(1) = "bbbbbbbbblbbbbb" level$(2) = "bbbbbbbbblbbbbb" level$(3) = "bbbbbbbbblbbbbb" level$(4) = "bbbbbbbbblbbbbb" level$(5) = "bbbbbbbbblbbbbb" level$(6) = "bggggbbbblbbbbb" level$(7) = "bggggbbbblbbbbb" level$(8) = "bggggbTbblbbbbb" level$(9) = "bggggbMbblbbbbb" level$(10) = "bbbbbbBbblbbbbb" END IF IF position$ = "G" THEN level$(1) = "bbbbbb [bbbb" level$(2) = "bbbbbb [bbbb" level$(3) = "bwbbwb [wbwb" level$(4) = "bbbbbbL [bbbb" level$(5) = "bbbbbbL [bbbb" level$(6) = "bbbbbbL---bbbbb" level$(7) = "bbbbbbLbbbbbbbb" level$(8) = "bbbbbbLbbbbbbbb" level$(9) = "bbbbbbLbbbbbbbb" level$(10) = "bbbbbbLbbbbbbbb" IF enemy(4) = 1 THEN CALL PutGuyThere(4, 135, 335, 335, 335, 4, 1, 1, 1) IF disc(5) = 1 THEN level$(3) = "bwbbwb d[wbwb" END IF IF position$ = "H" THEN level$(1) = " " level$(2) = " " level$(3) = "bbbbbbbbbbbbbbb" level$(4) = "bbwwbbbbbbbwwbb" level$(5) = "bbwwbbbbbbbwwbb" level$(6) = "bbbbbbbbbbbbbbb" level$(7) = "bbbbbbbbbbbbbbb" level$(8) = "bbbbbbbccccbbbb" level$(9) = "bbbbbcccccccbbb" level$(10) = "bbbcccccccccbbb" END IF IF position$ = "I" THEN level$(1) = "bb] L[bbbbbb" level$(2) = "bb] L[bbbbbb" level$(3) = "bb] L[bbbbbb" level$(4) = "bb]L L[bbbbbb" level$(5) = "bbbl----bbbbbbb" level$(6) = "bbblbbbbbbbbbbb" level$(7) = "bbblbbbbggggggb" level$(8) = "bbblbbTbggggggb" level$(9) = "bbblbbMbggggggb" level$(10) = "bbblbbBbbbbbbbb" END IF IF position$ = "J" THEN level$(1) = "bbbbb] " level$(2) = "bbbbb] f " level$(3) = "bbbbb] [ " level$(4) = "bbbbb] [ " level$(5) = "bbbbb] L [ " level$(6) = "bbbbbb-l-----bb" level$(7) = "bbbbbbblbbbbbbb" level$(8) = "bbbbbbblbbbbbbb" level$(9) = "bbbbbbblbbbbbbb" level$(10) = "bbbbbbblbbbbbbb" IF enemy(5) = 1 THEN CALL PutGuyThere(5, 135, 413, 370, 413, 1, 1, 1, 1) IF disc(6) = 1 THEN MID$(level$(3), 12, 1) = "d" IF disc(7) = 1 THEN MID$(level$(3), 13, 1) = "d" END IF IF position$ = "K" THEN level$(1) = " " level$(2) = "bbbbbbbbbbbbbbb" level$(3) = "bwwwwwwwwwwwwwb" level$(4) = "bbbbbbbbbbbbbbb" level$(5) = "bwwwwwwwwwwwwwb" level$(6) = "bbbbbbbbbbbbbbb" level$(7) = "bbbbbbbbbbbbbbb" level$(8) = "bbbbbbbbbbbbbbb" level$(9) = "bbbbbccccbubbbb" level$(10) = "bbbccccccbobbbb" END IF IF position$ = "L" THEN level$(1) = "bbbb " level$(2) = "bbbb " level$(3) = "bwwb " level$(4) = "bbbb " level$(5) = "bbbb " level$(6) = "bbbb " level$(7) = "bbbb " level$(8) = "bbbb " level$(9) = "bbbb uu " level$(10) = "bbbb ccoo " IF enemy(6) = 1 THEN CALL PutGuyThere(6, 340, 247, 247, 247, 2, 1, 1, 1) IF disc(8) = 1 THEN level$(8) = "bbbb d " END IF IF position$ = "M" THEN level$(1) = " bbbbbbbbbbblb" level$(2) = " bbbbbbbbbbblb" level$(3) = " bbwbbwbbwbblb" level$(4) = " bbbbbbbbbbblb" level$(5) = " bbbbbbbbbbblb" level$(6) = " bbbbbbbbbbblb" level$(7) = " bbbbbbbbbbblb" level$(8) = " bbbbwwwbTbblb" level$(9) = " bbbbbbbbMbblb" level$(10) = " bbbbbbbbBbblb" END IF IF position$ = "N" THEN level$(1) = " " level$(2) = " " level$(3) = " c f" level$(4) = " c [" level$(5) = " c [" level$(6) = " c [" level$(7) = " b---\ [" level$(8) = " bbbbb-\ [" level$(9) = " bbbbbbb\ L[" level$(10) = " bbbbbbbb---lb" IF enemy(7) = 1 THEN CALL PutGuyThere(7, 176, 165, 165, 165, 3, 2, 2, 1) IF disc(9) = 1 THEN level$(4) = " cd [" END IF IF position$ = "O" THEN level$(1) = "bbbbbbbbbbbbbbb" level$(2) = "bbbwwbbbbbwwbbb" level$(3) = "bbbwwbbbbbwwbbb" level$(4) = "bwbbbbbwbbbbbwb" level$(5) = "bwwbbbbbbbbbwwb" level$(6) = "bbwwbbbbbbbwwbb" level$(7) = "bbbwwwwwwwwwbbb" level$(8) = "bbbbbbbbbbbbbbb" level$(9) = "bbbbbbbbbbbbbbb" level$(10) = "bbbbbbbbbbbbbbb" END IF IF position$ = "P" THEN level$(1) = "bbbbbbbbbbbbbbb" level$(2) = "bbbbbbbbbbbbbbb" level$(3) = "bbbbbbbbbbbbbbb" level$(4) = "bbbbbbbbbbbbbbb" level$(5) = "bbbbbbbbbbbbbbb" level$(6) = "bbbbbbbbggggggb" level$(7) = "bbbbbbbbggggggb" level$(8) = "bbbbbbTbggggggb" level$(9) = "bbbbbbMbggggggb" level$(10) = "bbbcbbBbbbbbbbb" END IF IF position$ = "Q" THEN level$(1) = " nnLnn " level$(2) = " nnLnn " level$(3) = " nnnLnnn " level$(4) = " nnnLnnn " level$(5) = " nnnLnnn " level$(6) = " nnnnLnnnn " level$(7) = " bbbbbLbbbbb " level$(8) = " bbbbbbLbbbbbb " level$(9) = " bbbbbbLbbbbbb " level$(10) = "bbbbbbbLbbbbbbb" END IF IF position$ = "R" THEN level$(1) = " nnLnn " level$(2) = " nnLnn " level$(3) = " nnLnn " level$(4) = " nnLnn " level$(5) = " nnLnn " level$(6) = " nnLnn " level$(7) = " nnLnn " level$(8) = " nnLnn " level$(9) = " nnLnn " level$(10) = " nnLnn " END IF IF position$ = "S" THEN level$(1) = " nnnLnnn " level$(2) = " nnnLnnn " level$(3) = " nnLnn " level$(4) = " nnLnn " level$(5) = " nnLnn " level$(6) = " nnLnn " level$(7) = " nnLnn " level$(8) = " nnLnn " level$(9) = " nnLnn " level$(10) = " nnLnn " END IF IF position$ = "T" THEN level$(1) = " p " level$(2) = " L " level$(3) = "dd L dd" level$(4) = " L " level$(5) = " nnnnLnnnn " level$(6) = "nnnnggnLnggnnnn" level$(7) = "nnnnggnLnggnnnn" level$(8) = " nnnnLnnnn " level$(9) = " nnnLnnn " level$(10) = " nnnLnnn " IF enemy(8) = 1 THEN CALL PutGuyThere(8, 94, 124, 124, 124, 4, 2, 2, 1) IF enemy(9) = 1 THEN CALL PutGuyThere(9, 94, 452, 452, 452, 1, 1, 1, 2) IF disc(10) = 1 THEN MID$(level$(3), 1, 1) = "d" IF disc(11) = 1 THEN MID$(level$(3), 2, 1) = "d" IF disc(12) = 1 THEN MID$(level$(3), 14, 1) = "d" IF disc(13) = 1 THEN MID$(level$(3), 15, 1) = "d" END IF IF position$ = "U" THEN level$(1) = " bbbbbbbbbbbb" level$(2) = " bwwwwwwwwwwb" level$(3) = " bwwwwwwwwwwb" level$(4) = " bwwwwwwwwwwb" level$(5) = " bwwwwwwwwwwb" level$(6) = " bwwwwwwwwwwb" level$(7) = " bbbbbbbbbbbb" level$(8) = " bbbbbbbbbbbb" level$(9) = " bbbbbubbbbbb" level$(10) = " bbbbcocbbbbb" END IF IF position$ = "V" THEN level$(1) = "bbblbbbbbbbbbbb" level$(2) = "bbblbbbbbbbbbbb" level$(3) = "bbbl dd[bb" level$(4) = "bbbl [bb" level$(5) = "bbbl [bb" level$(6) = "bbbl--------bbb" level$(7) = "bbblbbbbbbbbbbb" level$(8) = "bbblbbbbbbbbbbb" level$(9) = "bbblbbbbbbbbbbb" level$(10) = "bbblbbbbbbbbbbb" IF enemy(10) = 1 THEN CALL PutGuyThere(10, 135, 330, 247, 370, 2, 1, 1, 1) IF disc(14) = 1 THEN MID$(level$(3), 11, 1) = "d" IF disc(15) = 1 THEN MID$(level$(3), 12, 1) = "d" END IF IF position$ = "W" THEN level$(1) = "bbblbbbbbbbbbbb" level$(2) = "bbblbbbbbbbbbbb" level$(3) = "bbblbbbbbbbbbbb" level$(4) = "bbblbbbl [b" level$(5) = "bbblbbbl [b" level$(6) = "bbbbbbbl [b" level$(7) = "bbbbbbbl [b" level$(8) = "bbblbbbl [b" level$(9) = "bbblbbbl-----bb" level$(10) = "bbblbbblbbbbbbb" IF enemy(11) = 1 THEN CALL PutGuyThere(11, 258, 452, 452, 452, 3, 1, 1, 1) IF disc(16) = 1 THEN level$(6) = "bbbbbbbl d[b" END IF IF position$ = "X" THEN level$(1) = " " level$(2) = " " level$(3) = "f " level$(4) = "] " level$(5) = "] " level$(6) = "] " level$(7) = "] /--" level$(8) = "] L /--bbb" level$(9) = "b--l-----bbbbbb" level$(10) = "bbblbbbbbbbbbbb" IF disc(17) = 1 THEN level$(6) = "]d " END IF IF position$ = "Y" THEN level$(1) = " " level$(2) = " fff" level$(3) = " [bb" level$(4) = " ddd[bb" level$(5) = " [bb" level$(6) = " [bb" level$(7) = "------------bbb" level$(8) = "bbbbbbbbbbbbbbb" level$(9) = "bbbbbbbbbbbbbbb" level$(10) = "bbbbbbbbbbbbbbb" IF enemy(12) = 1 THEN CALL PutGuyThere(12, 176, 325, 200, 335, 4, 1, 1, 1) IF disc(18) = 1 THEN MID$(level$(4), 10, 1) = "d" IF disc(19) = 1 THEN MID$(level$(4), 11, 1) = "d" IF disc(20) = 1 THEN MID$(level$(4), 12, 1) = "d" END IF l$(0) = " " l$(1) = " T " l$(2) = " S XY " l$(3) = " DE J N R W " l$(4) = " ABCFGHIKLMOPQUVZ " l$(5) = " " col = -40: row = 0 FOR d = 1 TO 10 row = row + 41 FOR s = 1 TO 15 col = col + 41 IF MID$(level$(d), s, 1) = "b" THEN PUT (col, row), brick IF MID$(level$(d), s, 1) = "-" THEN PUT (col, row), brick: LINE (col, row)-(col + 40, row), 8 IF MID$(level$(d), s, 1) = "[" THEN PUT (col, row), brick: LINE (col, row)-(col, row + 40), 8 IF MID$(level$(d), s, 1) = "]" THEN PUT (col, row), brick: LINE (col + 40, row)-(col + 40, row + 40), 8 IF MID$(level$(d), s, 1) = "/" THEN PUT (col, row), brick: LINE (col, row)-(col + 40, row), 8: LINE (col, row)-(col, row + 40), 8 IF MID$(level$(d), s, 1) = "\" THEN PUT (col, row), brick: LINE (col, row)-(col + 40, row), 8: LINE (col + 40, row)-(col + 40, row + 40), 8 IF MID$(level$(d), s, 1) = "w" THEN PUT (col, row), windo IF MID$(level$(d), s, 1) = "l" THEN PUT (col, row), ladder.b IF MID$(level$(d), s, 1) = "L" THEN PUT (col, row), ladder IF MID$(level$(d), s, 1) = "d" THEN PUT (col, row), disk IF MID$(level$(d), s, 1) = "s" THEN PUT (col, row), ninja.star IF MID$(level$(d), s, 1) = "f" THEN PUT (col, row), fireplace IF MID$(level$(d), s, 1) = "c" THEN PUT (col, row), crate IF MID$(level$(d), s, 1) = "T" THEN PUT (col, row), door.t IF MID$(level$(d), s, 1) = "M" THEN PUT (col, row), door.m IF MID$(level$(d), s, 1) = "B" THEN PUT (col, row), door.b IF MID$(level$(d), s, 1) = "n" THEN LINE (col, row)-(col + 40, row + 40), 8, BF IF MID$(level$(d), s, 1) = "p" THEN PUT (col, row), needle.p IF MID$(level$(d), s, 1) = "g" THEN LINE (col, row)-(col + 40, row + 40), 3, BF IF MID$(level$(d), s, 1) = "u" THEN PUT (col, row), trash.t IF MID$(level$(d), s, 1) = "o" THEN PUT (col, row), trash.b NEXT s col = -40 NEXT d IF u = 4 THEN LINE (1, row + 41)-(614, row + 41), 8 h = health + 20 IF position$ = "P" THEN COLOR 15: LOCATE 20, 50: PRINT "SPACE NEEDLE >>>" END IF END SUB SUB TheStory CLS : SCREEN 12 stopwriting = 0 COLOR 12 a$ = Writeout$(" You are Shadez the Ninja. You're one of the best fighters in the world.", 74, 4, 1) a$ = Writeout$("Your super computer and your disks have files on them telling how to make a", 75, 6, 1) a$ = Writeout$("device to destroy all electronic stuff in the world. A crime lord named", 71, 8, 1) a$ = Writeout$("Konrad has stolen your super computer and you diskettes. You must get it", 72, 10, 1) a$ = Writeout$("back for the worlds technology rests in your hands. Your quest begins in", 72, 12, 1) a$ = Writeout$("Seattle where Konrad is beleived to be. Go now, get your computer and disks", 75, 14, 1) a$ = Writeout$("and good luck!!", 15, 16, 1) COLOR 15 LOCATE 23: PRINT "Use the left and right arrows to move, the up arrow to jump, the down arrow" PRINT "to climb down and duck, the ' key to kick, the / key to punch, and the ; key to " PRINT "throw ninja stars if you have some." LOCATE 19, 19: PRINT "PRESS ENTER!" DO LOOP UNTIL INKEY$ = CHR$(13) GetGraphics1 END SUB SUB ThrowStar END SUB FUNCTION Writeout$ (word$, length, row, col) xnum = 0 FOR i = 1 TO length IF INKEY$ = CHR$(13) THEN stopwriting = 1 IF stopwriting = 1 THEN GOSUB Stopped xnum = xnum + 1 FOR n# = 1 TO 500 NEXT n# LOCATE row, col, 1, 31, 31 PRINT LEFT$(word$, xnum) NEXT Stopped: END FUNCTION