'=========================================================================== ' Subject: IMMORTAL KOMBAT II Date: 04-06-96 (00:00) ' Author: John Diamond Code: QB, QBasic, PDS ' Origin: pages.prodigy.com/gamersp Packet: GAMES.ABC '=========================================================================== 'Here is Immortal Kombat II at long last. 'It has 1 different special move for each character. 'You can play agianst the computer, or a friend. 'And it has a Pit fatality. '386/16 required for good play! do not use on a XT! 'Even though it will work it is sloooooooowwwwwwwwwwwww. 'If you operate under 50mhz you must lower the random 'possibilities in D1, D2, and D3 that are in the SUB 'COMP, before you play agianst the computer. 'Enjoy! ' J.d 'P.S Thanx ThOmAs and ~DAVE~ I couldn't of done this 'with out your help. 'Keys: 'Move: Player 1 Player 2 '------------------------------------------------- 'foreward 6 D 'backward 4 A 'Jump forward 9 Q 'Jump Backward 7 E 'Kick enter V 'Punch + F 'Pit fatality ? ? '--------------------------------------------------- 'Special moves have a two key combination, you 'could be tough and figure them out your self, or 'be a wimp and look at the INKEY commands. DECLARE SUB ENDER () DECLARE SUB PITENDER () DECLARE SUB PIT1 () DECLARE SUB PIT2 () DECLARE SUB COMP () DECLARE SUB DEAD () DECLARE SUB STAT1 () DECLARE SUB STAT2 () DECLARE SUB SHADOW2 () DECLARE SUB SONIC2 () DECLARE SUB ICE2 () DECLARE SUB SPEAR2 () DECLARE SUB FLAME2 () DECLARE SUB FRY2 () DECLARE SUB KNIFE2 () DECLARE SUB KNIFE () DECLARE SUB ICE () DECLARE SUB SPEAR () DECLARE SUB FLAME () DECLARE SUB FRY () DECLARE SUB SHADOW () DECLARE SUB SONIC () DECLARE SUB WALKF2 () DECLARE SUB WALKB2 () DECLARE SUB PUNCH2 () DECLARE SUB KICK2 () DECLARE SUB JUMP2 () DECLARE SUB JUMPB2 () DECLARE SUB PUNCH1 () DECLARE SUB KICK1 () DECLARE SUB JUMP1 () DECLARE SUB JUMPB1 () DECLARE SUB WALKF1 () DECLARE SUB DRAWBACK2 () DECLARE SUB WALKB1 () DECLARE SUB getcharacters () DECLARE SUB DRAWBACK () DECLARE SUB TITLE () DIM SHARED FINISH1 DIM SHARED FINISH2 DIM SHARED CHAR$ DIM SHARED CHAR2$ DIM SHARED L1 DIM SHARED L2 DIM SHARED CHAR2 DIM SHARED CHAR DIM SHARED FLAG DIM SHARED X1 DIM SHARED X2 DIM SHARED R1(800) DIM SHARED R2(800) DIM SHARED W1(800) DIM SHARED W2(800) DIM SHARED P1(800) DIM SHARED p2(800) DIM SHARED K1(800) DIM SHARED K2(800) DIM SHARED D1(800) GP: COLOR 15 LOCATE 12, 32: PRINT "How many players?" LOCATE 13, 32: PRINT " (1/2)"; INPUT "", PLAYER IF PLAYER > 2 THEN GOTO GP IF PLAYER = 0 THEN GOTO GP L1 = 50 L2 = 50 ON ERROR GOTO NOEGA SCREEN 7: GOTO EGA NOEGA: FLAG = 1: SCREEN 1: GOTO EGA EGA: TITLE RANDOMIZE TIMER PRINT "1) Rayden" 'ELECTRIC THROW PRINT "2) Sub Zero" ' ICE THROW PRINT "3) Scorpion" ' VAN DAM SPEAR PRINT "4) Sonya" ' SONIC WAVE PRINT "5) Johny Cage" ' SHADOW KICK PRINT "6) Lui Kang" ' GREEN FLAME PRINT "7) Kano" ' KNIFE THROW INPUT "Player 1: ", CHAR IF PLAYER = 1 THEN GOTO SKIP INPUT "Player 2: ", CHAR2 SKIP: IF PLAYER = 1 THEN CHAR2 = INT(RND(1) * 7) + 1 CLS : COLOR 1, 1 getcharacters DRAWBACK COLOR 4, 1 LOCATE 2, 15: PRINT "FIGHT" X1 = 50 X2 = 260 PUT (X1, 91), R1, PSET PUT (X2, 91), R2, PSET IN: K$ = INKEY$ IF FINISH1 = 1 THEN GOTO p2 IF K$ = "/" AND FINISH2 = 1 THEN PIT2 IF K$ = "6" THEN WALKF1: FLAG1 = 1: GOSUB CHECK1 IF K$ = "4" THEN WALKB1: FLAG2 = 1: GOSUB CHECK2 IF K$ = "+" THEN PUNCH1: FLAG3 = 1: GOSUB CHECK3: STAT1 IF K$ = CHR$(13) THEN KICK1: FLAG4 = 1: GOSUB CHECK4: STAT1 IF K$ = "9" THEN JUMP1 IF K$ = "7" THEN JUMPB1 IF FINISH2 = 1 THEN GOTO IN IF PLAYER = 1 THEN GOTO SP1 p2: IF K$ = "R" AND FINISH1 = 1 THEN PIT2 IF K$ = "D" THEN WALKF2: FLAGG2 = 1: GOSUB CCHECK2 IF K$ = "A" THEN WALKB2: FLAGG1 = 1: GOSUB CCHECK1 IF K$ = "F" THEN PUNCH2: FLAGG3 = 1: GOSUB CCHECK3: STAT2 IF K$ = "V" THEN KICK2: FLAGG4 = 1: GOSUB CCHECK4: STAT2 IF K$ = "E" THEN JUMP2 IF K$ = "Q" THEN JUMPB2 IF FINISH1 = 1 AND PLAYER = 1 THEN COMP: GOTO IN IF FINISH1 = 1 THEN GOTO IN 'SPECIAL MOVES: SP1: 'P1: IF K$ = "1" AND FLAG2 = 1 THEN FLAG2 = 0: FRY IF K$ = "2" AND FLAG3 = 1 THEN FLAG3 = 0: KNIFE IF K$ = "8" AND FLAG4 = 1 THEN FLAG4 = 0: SHADOW IF K$ = "3" AND FLAG3 = 1 THEN FLAG2 = 0: SONIC IF K$ = "1" AND FLAG3 = 1 THEN FLAG3 = 0: ICE IF K$ = "8" AND FLAG3 = 1 THEN FLAG3 = 0: SPEAR IF K$ = "2" AND FLAG4 = 1 THEN FLAG4 = 0: FLAME IF PLAYER = 1 THEN COMP IF PLAYER = 1 THEN GOTO IN 'P2 IF K$ = "Z" AND FLAGG2 = 1 THEN FLAGG2 = 0: FRY2 IF K$ = "X" AND FLAGG3 = 1 THEN FLAGG3 = 0: KNIFE2 IF K$ = "W" AND FLAGG4 = 1 THEN FLAGG4 = 0: SHADOW2 IF K$ = "C" AND FLAGG3 = 1 THEN FLAGG2 = 0: SONIC2 IF K$ = "Z" AND FLAGG3 = 1 THEN FLAGG3 = 0: ICE2 IF K$ = "W" AND FLAGG3 = 1 THEN FLAGG3 = 0: SPEAR2 IF K$ = "X" AND FLAGG4 = 1 THEN FLAGG4 = 0: FLAME2 GOTO IN CHECK1: IF FLAG2 = 1 THEN FLAG2 = 0 IF FLAG3 = 1 THEN FLAG3 = 0 IF FLAG4 = 1 THEN FLAG4 = 0 RETURN CHECK2: IF FLAG1 = 1 THEN FLAG1 = 0 IF FLAG3 = 1 THEN FLAG3 = 0 IF FLAG4 = 1 THEN FLAG4 = 0 RETURN CHECK3: IF FLAG2 = 1 THEN FLAG2 = 0 IF FLAG1 = 1 THEN FLAG1 = 0 IF FLAG4 = 1 THEN FLAG4 = 0 RETURN CHECK4: IF FLAGG2 = 1 THEN FLAG2 = 0 IF FLAGG3 = 1 THEN FLAG3 = 0 IF FLAGG1 = 1 THEN FLAG1 = 0 RETURN CCHECK1: IF FLAGG2 = 1 THEN FLAGG2 = 0 IF FLAGG3 = 1 THEN FLAGG3 = 0 IF FLAGG4 = 1 THEN FLAGG4 = 0 RETURN CCHECK2: IF FLAGG1 = 1 THEN FLAGG1 = 0 IF FLAGG3 = 1 THEN FLAGG3 = 0 IF FLAGG4 = 1 THEN FLAGG4 = 0 RETURN CCHECK3: IF FLAGG2 = 1 THEN FLAGG2 = 0 IF FLAGG1 = 1 THEN FLAGG1 = 0 IF FLAGG4 = 1 THEN FLAGG4 = 0 RETURN CCHECK4: IF FLAGG2 = 1 THEN FLAGG2 = 0 IF FLAGG3 = 1 THEN FLAGG3 = 0 IF FLAGG1 = 1 THEN FLAGG1 = 0 RETURN SUB COMP D1 = INT(RND(1) * 20) + 1 D2 = INT(RND(1) * 25) + 1 D3 = INT(RND(1) * 65) + 1 RANDOMIZE TIMER IF X2 > X1 + 15 AND D1 = 2 THEN X2 = X2 - 1: WALKB2 END IF IF X2 > X1 + 5 AND X2 < X1 + 19 AND D2 = 6 THEN PUNCH2 END IF IF X2 > X1 + 5 AND X2 < X1 + 19 AND D2 = 25 THEN KICK2 END IF IF FINISH1 = 1 THEN END IF D3 = 65 THEN IF CHAR2 = 1 THEN FRY2 IF CHAR2 = 2 THEN ICE2 IF CHAR2 = 3 THEN SPEAR2 IF CHAR2 = 4 THEN SONIC2 IF CHAR2 = 5 THEN SHADOW2 IF CHAR2 = 6 THEN FLAME2 IF CHAR2 = 7 THEN KNIFE2 END IF IF X2 < X1 + 15 AND D1 = 20 THEN JUMP2 END IF END SUB SUB DEAD COLOR 15 LOCATE 7, 15: PRINT "FINISH HIM" END SUB SUB DRAWBACK CLS COLOR 1, 1 LINE (0, 125)-(319, 155), 7, BF LINE (30, 135)-(34, 200), 7 LINE (60, 135)-(56, 200), 7 PAINT (50, 199), 7 LINE (250, 135)-(254, 200), 7 LINE (290, 135)-(286, 200), 7 PAINT (270, 199), 7 LINE (100, 130)-(110, 130), 15 LINE (100, 130)-(100, 150), 15 LINE (100, 150)-(110, 150), 8 LINE (110, 150)-(110, 130), 8 LINE (115, 130)-(115, 150), 15 LINE (115, 130)-(125, 140), 15 LINE (125, 140)-(130, 130), 15 LINE (130, 132)-(130, 150), 8 LINE (128, 150)-(128, 140), 8 LINE (128, 140)-(125, 144), 8 LINE (125, 144)-(119, 138), 8 LINE (119, 138)-(119, 150), 8 LINE (119, 150)-(115, 150), 8 LINE (130, 150)-(128, 150), 8 LINE (135, 130)-(135, 150), 15 LINE (135, 130)-(138, 130), 15 LINE (138, 130)-(138, 140), 15 LINE (138, 140)-(143, 135), 15 LINE (143, 135)-(145, 137), 8 LINE (145, 137)-(138, 143), 8 LINE (138, 143)-(145, 150), 8 LINE (135, 150)-(145, 150), 8 IF CHAR = 1 THEN CHAR$ = "Rayden" IF CHAR = 2 THEN CHAR$ = "Sub Zero" IF CHAR = 3 THEN CHAR$ = "Scorpion" IF CHAR = 4 THEN CHAR$ = "Sonya" IF CHAR = 5 THEN CHAR$ = "Johny Cage" IF CHAR = 6 THEN CHAR$ = "Lui Kang" IF CHAR = 7 THEN CHAR$ = "Kano" IF CHAR2 = 1 THEN CHAR2$ = "Rayden" IF CHAR2 = 2 THEN CHAR2$ = "Sub Zero" IF CHAR2 = 3 THEN CHAR2$ = "Scorpion" IF CHAR2 = 4 THEN CHAR2$ = "Sonya" IF CHAR2 = 5 THEN CHAR2$ = "Johny Cage" IF CHAR2 = 6 THEN CHAR2$ = "Lui Kang" IF CHAR2 = 7 THEN CHAR2$ = "Kano" LOCATE 1, 1: PRINT CHAR$; CHAR2$ END SUB SUB DRAWBACK2 IF FLAG = 0 THEN LINE (0, 26)-(319, 124), 1, BF END IF IF FLAG = 1 THEN LINE (0, 26)-(319, 124), 0, BF END IF COLOR 15 LOCATE 5, 4: PRINT CHAR$ LOCATE 5, 25: PRINT CHAR2$ COLOR 1, 1 STAT1 STAT2 END SUB SUB ENDER COLOR 15 LOCATE 7, 14 IF FINISH1 = 1 THEN PRINT CHAR2$; IF FINISH2 = 1 THEN PRINT CHAR$; PRINT " Wins!" WHILE INKEY$ = "": WEND WHILE INKEY$ = "": WEND SYSTEM END SUB SUB FLAME IF CHAR <> 6 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), P1 PUT (X2, 91), R2 FOR I = X1 + 12 TO X2 CIRCLE (I, 91 + 15), 3, 10 PUT (X1, 91), P1 PUT (X2, 91), R2 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L2 = L2 - 5: STAT2 END SUB SUB FLAME2 IF CHAR2 <> 6 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), p2 PUT (X1, 91), R1 I = X2 FOR V = X1 + 12 TO X2 I = I - 1 CIRCLE (I, 91 + 15), 3, 10 PUT (X2, 91), p2 PUT (X1, 91), R1 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L1 = L1 - 5: STAT1 END SUB SUB FRY IF CHAR <> 1 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), P1 PUT (X2, 91), R2 IF FLAG = 0 THEN LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 14 END IF IF FLAG = 1 THEN LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 1 END IF FOR I = 1 TO 500: NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 L2 = L2 - 7: STAT2 END SUB SUB FRY2 IF CHAR2 <> 1 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), p2 IF FLAG = 0 THEN LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 14 END IF IF FLAG = 1 THEN LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 1 END IF FOR I = 1 TO 500: NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 L1 = L1 - 7: STAT1 END SUB SUB getcharacters 'R1 CIRCLE (7, 7), 5, 7 LINE (7, 12)-(7, 24), 8 LINE (7, 24)-(0, 33), 5 LINE (7, 24)-(14, 33), 5 LINE (7, 19)-(12, 12), 8 GET (0, 0)-(15, 33), R1 'R2 CIRCLE (28, 7), 5, 7 LINE (28, 12)-(28, 24), 8 LINE (28, 24)-(21, 33), 5 LINE (28, 24)-(35, 33), 5 LINE (28, 19)-(19, 12), 8 GET (18, 0)-(35, 33), R2 'W1 CIRCLE (49, 7), 5, 7 LINE (49, 12)-(49, 33), 8 LINE (49, 24)-(49, 33), 5 LINE (49, 24)-(56, 33), 5 LINE (49, 19)-(54, 12), 8 GET (39, 0)-(56, 33), W1 'W2 CIRCLE (70, 7), 5, 7 LINE (70, 12)-(70, 33), 8 LINE (70, 24)-(70, 33), 5 LINE (70, 24)-(65, 33), 5 LINE (70, 19)-(65, 12), 8 GET (60, 0)-(75, 33), W2 'P1 CIRCLE (91, 7), 5, 7 LINE (91, 12)-(91, 24), 8 LINE (91, 24)-(86, 33), 5 LINE (91, 24)-(96, 33), 5 LINE (91, 19)-(100, 19), 8 GET (81, 0)-(101, 33), P1 'P2 CIRCLE (112, 7), 5, 7 LINE (112, 12)-(112, 24), 8 LINE (112, 24)-(107, 33), 5 LINE (112, 24)-(117, 33), 5 LINE (112, 19)-(101, 19), 8 GET (101, 0)-(117, 33), p2 'K1 CIRCLE (133, 7), 5, 7 LINE (133, 12)-(133, 33), 8 LINE (133, 24)-(133, 33), 5 LINE (133, 24)-(148, 24), 5 LINE (133, 19)-(138, 12), 8 GET (123, 0)-(148, 33), K1 'K2 CIRCLE (164, 7), 5, 7 LINE (164, 12)-(164, 33), 8 LINE (164, 24)-(164, 33), 5 LINE (164, 24)-(150, 24), 5 LINE (164, 19)-(159, 12), 8 GET (149, 0)-(170, 33), K2 'D LINE (174, 15)-(195, 15), 4 LINE (174, 17)-(195, 17), 4 LINE (195, 16)-(216, 16), 9 CIRCLE (222, 16), 5, 6 GET (174, 12)-(227, 22), D1 END SUB SUB ICE IF CHAR <> 2 THEN EXIT SUB IF FLAG = 1 THEN C = 1 IF FLAG = 0 THEN C = 9 PUT (X1, 91), P1 PUT (X2, 91), R2 FOR I = X1 + 12 TO X2 LINE (I, 106)-(I + 5, 110), C, BF PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L2 = L2 - 3: STAT2 END SUB SUB ICE2 IF CHAR2 <> 2 THEN EXIT SUB IF FLAG = 1 THEN C = 1 IF FLAG = 0 THEN C = 9 PUT (X2, 91), p2 PUT (X1, 91), R1 I = X2 FOR V = X1 + 12 TO X2 I = I - 1 LINE (I, 106)-(I + 5, 110), C, BF PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L1 = L1 - 3: STAT1 END SUB SUB JUMP1 IF X1 > 285 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 85), R1 DRAWBACK2 FOR I = 1 TO 5 X1 = X1 + 1 PUT (X1 + I + 10, 76 + I), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT X1 = X1 + 30 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB JUMP2 IF X2 > 262 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 85), R1 DRAWBACK2 FOR I = 1 TO 5 X2 = X2 + 1 PUT (X2 + I + 10, 76 + I), R2 PUT (X1, 91), R1 DRAWBACK2 NEXT X2 = X2 + 30 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB JUMPB1 IF X1 < 35 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 85), R1 DRAWBACK2 FOR I = 1 TO 5 X1 = X1 - 1 PUT (X1 - I - 10, 76 + I), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT X1 = X1 - 30 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB JUMPB2 IF X2 < 35 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 85), R1 DRAWBACK2 FOR I = 1 TO 5 X2 = X2 - 1 PUT (X2 - I - 10, 76 + I), R2 PUT (X1, 91), R1 DRAWBACK2 NEXT X2 = X2 - 30 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB KICK1 DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 91), K1 FOR I = 1 TO 1000: NEXT DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 91), R1 IF X1 + 16 > X2 AND X1 < X2 + 12 THEN L2 = L2 - 1: STAT2 END SUB SUB KICK2 DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), K2 FOR I = 1 TO 1000: NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 IF X2 - 8 < X1 + 10 THEN L1 = L1 - 1: STAT1 END SUB SUB KNIFE IF CHAR <> 7 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), P1 PUT (X2, 91), R2 FOR I = X1 + 12 TO X2 LINE (I, 95)-(I + 5, 100), 7 PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L2 = L2 - 5: STAT2 END SUB SUB KNIFE2 IF CHAR <> 7 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), p2 PUT (X2, 91), R1 I = X2 FOR V = X1 + 12 TO X2 I = I - 1 LINE (I, 95)-(I + 5, 100), 7 PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L1 = L1 - 5: STAT1 END SUB SUB PIT2 CLS FOR Y = 1 TO 180 COLOR 1, 1 LINE (34, 0)-(56, 200), 7, BF LINE (254, 0)-(286, 200), 7, BF LINE (0, 190)-(319, 200), 7, BF FOR I = 1 TO 320 STEP 20 LINE (I, 190)-(I + 5, 180), 15 LINE (I + 15, 190)-(I + 10, 180), 15 NEXT LINE (34, 0)-(34, 200), 7 LINE (56, 0)-(56, 200), 7 PAINT (36, 1), 7 IF FINISH2 = 1 THEN PUT (X2, Y), D1, PSET IF FINISH1 = 1 THEN PUT (X1, Y), D1, PSET FOR I = 1 TO 150: NEXT LINE (57, 0)-(253, 176), 1, BF NEXT LINE (254, 0)-(286, 200), 7, BF LINE (0, 190)-(319, 200), 7, BF FOR I = 1 TO 320 STEP 20 LINE (I, 190)-(I + 5, 180), 15 LINE (I + 15, 190)-(I + 10, 180), 15 NEXT LINE (34, 0)-(34, 200), 7 LINE (56, 0)-(56, 200), 7 PAINT (36, 1), 7 PITENDER END SUB SUB PITENDER COLOR 15 LOCATE 4, 15: PRINT "PIT FATALITY" LOCATE 7, 13 IF FINISH1 = 1 THEN PRINT CHAR2$; IF FINISH2 = 1 THEN PRINT CHAR$; PRINT " Wins!" WHILE INKEY$ = "": WEND WHILE INKEY$ = "": WEND SYSTEM END SUB SUB PUNCH1 DRAWBACK2 PUT (X2, 91), R2 PUT (X1, 91), P1 FOR I = 1 TO 1000 NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 IF X1 + 16 > X2 AND X1 < X2 + 12 THEN L2 = L2 - 1: STAT2 END SUB SUB PUNCH2 DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), p2 FOR I = 1 TO 1000: NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 IF X2 - 8 < X1 + 8 THEN L1 = L1 - 1: STAT1 END SUB SUB SHADOW IF CHAR <> 5 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R1 FOR I = 1 TO 10 X1 = X1 + 5 PUT (X1, 91), K1 PUT (X2, 91), R2 DRAWBACK2 NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 IF X1 > X2 THEN L2 = L2 - 6: STAT2 END SUB SUB SHADOW2 IF CHAR2 <> 5 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), R1 FOR I = 1 TO 10 X2 = X2 - 5 PUT (X2, 91), K2 PUT (X1, 91), R1 DRAWBACK2 NEXT DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 IF X2 < X1 + 12 THEN L1 = L1 - 6: STAT1 END SUB SUB SONIC IF CHAR <> 4 THEN EXIT SUB IF FLAG = 1 THEN C = 2 IF FLAG = 0 THEN C = 12 DRAWBACK2 PUT (X1, 91), P1 PUT (X2, 91), R2 FOR I = X1 TO X2 LINE (I, 98)-(I, 105), C LINE (I + 2, 97)-(I + 1, 104), C LINE (I + 4, 96)-(I + 2, 103), C PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 NEXT L2 = L2 - 4: STAT2 END SUB SUB SONIC2 IF CHAR <> 4 THEN EXIT SUB IF FLAG = 1 THEN C = 2 IF FLAG = 0 THEN C = 12 DRAWBACK2 PUT (X2, 91), p2 PUT (X1, 91), R1 I = X2 FOR V = X1 TO X2 I = I - 1 LINE (I, 98)-(I, 105), C LINE (I - 2, 97)-(I - 1, 104), C LINE (I - 4, 96)-(I - 2, 103), C PUT (X1, 91), R1 PUT (X2, 91), R2 DRAWBACK2 PUT (X1, 91), R1 PUT (X2, 91), R2 NEXT L1 = L1 - 4: STAT1 END SUB SUB SPEAR IF CHAR <> 3 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), P1 PUT (X2, 91), R2 LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 8 FOR I = X1 TO X2 - 15 X2 = X2 - 1 PUT (X1, 91), P1 PUT (X2, 91), R2 LINE (X1 + 16, 91 + 19)-(X2 + 8, 91 + 19), 8 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L2 = L2 - 4: STAT2 END SUB SUB SPEAR2 IF CHAR2 <> 3 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), p2 PUT (X1, 91), R1 LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 8 FOR I = X1 TO X2 - 15 X1 = X1 + 1 PUT (X2, 91), p2 PUT (X1, 91), R1 LINE (X2, 91 + 19)-(X1 + 8, 91 + 19), 8 DRAWBACK2 NEXT PUT (X1, 91), R1 PUT (X2, 91), R2 L1 = L1 - 4: STAT1 END SUB SUB STAT1 IF FINISH1 = 1 OR FINISH2 = 1 THEN ENDER IF L1 < 0 THEN DEAD: FINISH1 = 1 IF FLAG = 0 THEN C1 = 14: C2 = 4 IF FLAG = 1 THEN C1 = 4: C2 = 2 LINE (0, 5)-(150, 25), C1, BF LINE (L1 * 3, 5)-(150, 25), C2, BF END SUB SUB STAT2 IF FINISH1 = 1 OR FINISH2 = 1 THEN ENDER IF L2 < 0 THEN DEAD: FINISH2 = 1 IF FLAG = 0 THEN C1 = 14: C2 = 4 IF FLAG = 1 THEN C1 = 4: C2 = 2 LINE (170, 5)-(320, 25), C1, BF LINE (L2 * 3 + 170, 5)-(320, 25), C2, BF END SUB SUB TITLE COLOR 0, 7 LINE (50, 20)-(50, 150), 15 LINE (50, 20)-(75, 20), 15 LINE (75, 20)-(75, 150), 8 LINE (75, 150)-(50, 150), 8 LINE (90, 20)-(90, 150), 15 LINE (90, 20)-(115, 70), 15 LINE (115, 70)-(130, 20), 15 LINE (130, 22)-(130, 150), 8 LINE (125, 150)-(125, 65), 8 LINE (125, 65)-(115, 85), 8 LINE (115, 85)-(105, 65), 8 LINE (105, 65)-(105, 150), 8 LINE (105, 150)-(90, 150), 8 LINE (125, 150)-(130, 150), 8 LINE (140, 20)-(140, 150), 15 LINE (140, 20)-(150, 20), 15 LINE (150, 20)-(150, 90), 15 LINE (150, 90)-(175, 70), 15 LINE (175, 70)-(180, 80), 8 LINE (180, 80)-(150, 100), 8 LINE (150, 100)-(190, 150), 8 LINE (190, 150)-(140, 150), 8 COLOR 1 LOCATE 1, 1: PRINT "IMMORTAL KOMBAT.........." LOCATE 20, 15: PRINT "1994 G.P.S Software......" LOCATE 22, 10: PRINT "By: John Diamond" WHILE INKEY$ = "": WEND CLS : COLOR 15, 0 'IF FLAG = 1 THEN SCREEN 1 'IF FLAG = 0 THEN SCREEN 7 END SUB SUB WALKB1 IF X1 < 5 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 X1 = X1 - 4 PUT (X1, 91), W1 X1 = X1 - 1 FOR I = 1 TO 200: NEXT DRAWBACK2 X1 = X1 - 1 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB WALKB2 IF X2 < 2 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), R1 X2 = X2 - 4 PUT (X2, 91), W2 FOR I = 1 TO 200: NEXT DRAWBACK2 X2 = X2 - 1 PUT (X1, 91), R1 PUT (X2, 91), R2 END SUB SUB WALKF1 IF X1 > 295 THEN EXIT SUB DRAWBACK2 PUT (X2, 91), R2 X1 = X1 + 4 PUT (X1, 91), W1 FOR I = 1 TO 200: NEXT DRAWBACK2 PUT (X2, 91), R2 X1 = X1 + 1 PUT (X1, 91), R1 END SUB SUB WALKF2 IF X2 > 295 THEN EXIT SUB DRAWBACK2 PUT (X1, 91), R1 X2 = X2 + 4 PUT (X2, 91), W2 FOR I = 1 TO 200: NEXT DRAWBACK2 X2 = X2 + 1 PUT (X2, 91), R2 PUT (X1, 91), R1 END SUB