' Program: Stick Fighten ' File: FIGHT251.BAS ' Date: November 1996-January 1997 (entire history) ' Author: Xopl ' Send all comments to: me@XOPL.com ' ' Info: (this is kinda long and should be a seperate text file) ' (you can skip ahead for directions, and start playing, if you'd like) ' ' This is v2.51 of my beta QBasic fighting game. It involves line and circle ' drawn stick figures that fight it out. There is a 2 player mode and enemy ' AI for a 1 player mode. Its really not that bad of a program besides the ' lack of good graphics. Only problem I see that is that the enemy waits for ' you to move before it reacts. But, with this engine, and other fighting ' game engines I've seen, if you let the computer player go all the time it ' makes it almost impossible for you to attack and gameplay is hurt badly. So, ' I strongly feel that my AI works much better than that in the other QBasic ' fighters I've played. In the others you'd get killed right away, or all you ' have to do it just hit the punch key as fast as you can (SPFIGHT.BAS for ' example). You can't do that with my engine or my AI, so gameplay is better. ' (But don't get me wrong... there are some impressive things in Sphere ' Fighter.) If you read on, there IS an experimental fix to the waiting ' opponent problem. ' There are 4 characters to select from normally, the end guy, and the ' secrets. The great thing is all the secrets in this game. Some of the ' secrets are layered and burried so you'll have to really work to get them, ' or you'll cheat and read and edit this program. Each character has a story ' and ending. There is also a sub routine for a filled circle, and for ' spelling out text letter by letter. I don't know what else to say, read the ' sloppy code and figure it all out if you'd like. This is beta because there ' are some unfinished codes and I would like to hear suggestions from people. ' If you found a code (especially if you didn't cheat to find it) please drop ' a message my way, I'd love to know who can find my codes. ' Enjoy!!! Press F5 now to play!!!! ' ' ====>> 1 Player controls: Up = Upper Cut Down = Normal Punch ' <-- [right] and --> [left] move you. ' Press ENTER during a match for 2 Player mode ' ' *Like my logo/effects/the little light-shine-through-the-text thing? ' *New versions will include: special moves (I hope), better graphics, and ' maybe a whole new reworked game engine. ' *There are _at_least_ 2 secret guys in this game ;-) ' ' Stick Fighten v2.51 (FIGHT251.BAS) Copyright (C) 1995-1997 Xopl ' "Xopl" Copyright 1995-1997 <-- in other terms, don't steal ' that word ' "MO3 TECHNOLOGY" Copyright 1996-1997 Xopl <-- don't steal that either ' You MAY distribute this file as you wish freely, as long as the file ' has NOT been altered in any way. ' You may NOT, however, steal this program's game engine or use this program's ' code/engine as a base for other programs. <+>You may read the code and use ' it for an example, only. If you get any ideas by reading my code I would ' apprieciate you putting in a thanks to me in your program. ' All code in this program was created from scratch by Xopl. No code ' was used from other fighting games. ' Any names in this program that are in anything else are just coincidental ' because as far as I know I made all the names up. ' ' Also, in the works is a 3D demo. ' And, 90% finished and being released soon (I hope): A great Slots game with ' a high score list and full password capabilities. ' I also have already programmed over 12 programs of my own. DECLARE FUNCTION circlefill! (x!, y!, R!, c!) DECLARE FUNCTION cheapcls! () DECLARE FUNCTION spell$ (word$, length!, row!, col!) ' NOTE: Make "try" = 1 to test out an experimental bit of AI... it lets the ' computer go even when you haven't moved. Its not a normal feature because ' it has a somewhat negative effect on gameplay. Also, "agress" controls how ' fast and agressive the computer player is if you use the experimental thing. ' This is the temporary fix to the problem I stated before, in the above text. try = 0 agress = 3000 '1000 is almost too fast, and the higher the number the less 'it hurts gameplay. *If you have a slow computer, 1000 may 'not be too fast, then. speed = 5500 '<---- set this lower if you have a slower computer, it only ' effects how fast the credits scroll, though. p1loss = 0 player2A$ = "FALSE" player2B$ = "FALSE" p1w = 0 p2w = 0 CLS COLOR 15, 4 PRINT " Stick Fighten v2.51 BETA (C)1995-1997 Xopl " COLOR 7, 0 PRINT PRINT " **********************************************************" PRINT " * You MAY distribute this file as you wish freely, *" PRINT " * as long as this file has NOT been altered in any way. *" PRINT " * You MAY NOT, however, steal this program's game engine *" PRINT " * or use this program's code/engine as a base for other *" PRINT " * programs. + *" PRINT " **********************************************************" SLEEP (8) COLOR 15, 0 PRINT PRINT "Press ESC to skip intro" SLEEP (2) IF INKEY$ = CHR$(27) THEN GOTO pickstart COLOR 0, 0 CLS LOCATE 5, 30, 1, 31, 31 COLOR 0, 4 PRINT "Stick Fighten" PLAY "o0;l2;cc;l1;c" SLEEP (2) COLOR 8, 0 CLS LOCATE 12, 30, 1, 31, 31 lmno$ = "Created by" PRINT lmno$ lmn = 29 tlmn = 0 FOR i = 1 TO 12 lmn = lmn + 1 tlmn = tlmn + 1 LOCATE 12, lmn, 0 COLOR 15, 0 PRINT MID$(lmno$, tlmn, 1) LOCATE 12, lmn, 0 COLOR 8, 0 PLAY "mnl64n0p64n0" PRINT MID$(lmno$, tlmn, 1) ' QUIT READING THE CODE AND PLAY ALREADY!!! NEXT PLAY "l1;c" t: CLS SCREEN 12 LINE (50, 300)-(150, 450), 10 LINE (150, 300)-(50, 450), 10 CIRCLE (315, 340), 57, 10, , , .7 LINE (314, 210)-(255, 400), 0, BF LINE (315, 300)-(315, 450), 10 CIRCLE (220, 375), 50, 14 LINE (170, 380)-(270, 325), 0, BF CIRCLE (220, 375), 70, 14 CIRCLE (190, 350), 10, 14 LINE (240, 350)-(260, 350), 14 LINE (400, 300)-(400, 450), 10 LINE (400, 450)-(470, 450), 10 PLAY "l2;ccc;l1;c" LOCATE 13, 33, 0 COLOR 15 PRINT " aka " FOR i = 1 TO 1000: NEXT COLOR 14 LOCATE 1, 1, 0 PRINT "Xopl" DIM ass(100, 20) GET (0, 0)-(99, 19), ass LINE (0, 0)-(99, 19), 0, BF ax = 300 av = 0 DO dcntr = dcntr + 1 LINE (ax, 150)-(ax + 100, 180), 0, BF ax = ax + av IF ax < 250 THEN av = av + 1 ELSE av = av - 1 PUT (ax, 150), ass, PSET FOR i = 1 TO 1000: NEXT LOOP WHILE dcntr < 100 CLS LOCATE 1, 1, 0 COLOR 10 PRINT "3" DIM three(15, 15) GET (0, 0)-(15, 15), three LINE (0, 0)-(20, 20), 0, BF LOCATE 13, 35, 0 PRINT "MO" COLOR 15 LOCATE 15, 25, 0 PRINT "TECHNOLOGY" PUT (290, 185), three SLEEP (2) SCREEN 0 LOCATE 12, 25, 0 PRINT "XOPL LIVES..." LOCATE 14, 15, 0 PRINT CHR$(34); "Don't eat yellow snow."; CHR$(34) FOR i = 1 TO 15000: NEXT CLS COLOR 0, 4 CLS PRINT "Press ESC to skip story." PLAY "l1n0p20n0" LOCATE 1, 1, 1, 31, 31 PRINT " " IF INKEY$ = CHR$(27) THEN GOTO pickstart LOCATE 5, 1, 1, 31, 31 PRINT "THE STORY:" a$ = spell$("5000 years ago a kingdom fell to darkness. The land and people were taken by .", 77, 6, 3) a$ = spell$("Lord Xopl.", 20, 7, 1) PRINT "" a$ = spell$("Dark rule continued for years until the curent uprising. Four challengers have ", 78, 9, 3) a$ = spell$("come forth. Xopl soon arranged a tournament and fighting began... ", 75, 10, 1) PRINT "" INPUT "Press ENTER to continue.", story ' Start select character. pickstart: SCREEN 0 x1 = 4 x2 = 0 x3 = 0 x4 = 0 xopl.code = 0 ocode = 0 GOTO pick pick: COLOR 4, 0 CLS LOCATE 12, 1, 1, 31, 31 PRINT "" PRINT "" COLOR 2, x1 PRINT " Habeeb " COLOR 1, x2 PRINT " Neptis Omega "; : IF ocode = 0 THEN PRINT "" IF ocode = 1 THEN PRINT " "; COLOR 0, 4 PRINT " Snorch " END IF COLOR 3, x3 PRINT " Arch " COLOR 14, x4 PRINT " Shceana " COLOR 4, 0 PRINT "" PRINT "" PRINT "Choose your bringer of chaos." 126 SELECT CASE INKEY$ CASE CHR$(0) + "P": GOTO pickdown CASE CHR$(0) + "H": GOTO pickup CASE CHR$(0) + "M": IF x2 = 4 THEN GOTO pickover CASE CHR$(13): GOTO pickselect CASE CHR$(88): GOTO 380 CASE CHR$(27): GOTO q.select END SELECT GOTO 126 pickover: x2 = 0 ocode = 1 GOTO pick q.select: PRINT PRINT INPUT "Are you sure you want to quit? [Y or N] ", qyn$ IF UCASE$(qyn$) = "Y" THEN GOTO 480 GOTO pickstart pickup: ocode = 0 IF x1 = 4 THEN GOTO pickupA IF x2 = 4 THEN GOTO pickupB IF x3 = 4 THEN GOTO pickupC IF x4 = 4 THEN GOTO pickupD pickupA: x1 = 0 x4 = 4 GOTO pick pickupB: x2 = 0 x1 = 4 GOTO pick pickupC: x3 = 0 x2 = 4 GOTO pick pickupD: x4 = 0 x3 = 4 GOTO pick pickdown: ocode = 0 IF x1 = 4 THEN GOTO pickdownA IF x2 = 4 THEN GOTO pickdownB IF x3 = 4 THEN GOTO pickdownC IF x4 = 4 THEN GOTO pickdownD pickdownA: x1 = 0 x2 = 4 GOTO pick pickdownB: x2 = 0 x3 = 4 GOTO pick pickdownC: x3 = 0 x4 = 4 GOTO pick pickdownD: x4 = 0 x1 = 4 GOTO pick pickselect: IF x1 = 4 THEN GOTO 240 IF x2 = 4 THEN GOTO 275 IF x3 = 4 THEN GOTO 310 IF x4 = 4 THEN GOTO 345 ' End select character. 240 CLS LOCATE 7, 1, 1, 31, 31 COLOR 2, 0 IF ocode = 0 THEN PRINT "You have chosen Habeeb." PRINT " As soon as Habeeb, a theif, heard of the tournament he knew he had to join." PRINT "Habeeb plans to take over the kingdom thus inherriting all the riches." END IF IF ocode = 1 THEN PRINT "You have chosen Habeeb's twin." COLOR 7, 0 PRINT "Please excuse how cheap this code is... I was bored when I did it." END IF COLOR 4, 0 INPUT "Press ENTER to fight.", Z IF player2A$ = "TRUE" THEN name1$ = "Habeeb" IF ocode = 1 THEN name1$ = "Snorch" color1 = 2 player2B$ = "TRUE" player2A$ = "FALSE" GOTO pickstart END IF IF player2B$ = "TRUE" THEN name2$ = " Habeeb" IF ocode = 1 THEN name2$ = " Snorch" color2 = 2 IF name1$ = "Habeeb" OR name1$ = "Snorch" THEN color2 = 10 GOTO 430 END IF name1$ = "Habeeb" IF ocode = 1 THEN name1$ = "Snorch" name2$ = " Arch" name3$ = "Neptis Omega" name4$ = " Shceana" color1 = 2 color2 = 3 color3 = 1 color4 = 14 GOTO 430 275 CLS LOCATE 7, 1, 1, 31, 31 COLOR 1, 0 PRINT "You have chosen Neptis Omega." PRINT " Neptis, a worshiper of the sea, entered the tournament in hope to bring" PRINT "peace and spread his beliefs. He is said to be a desendent of the god" PRINT "Neptune, lord of the oceans and seas." COLOR 4, 0 INPUT "Press ENTER to fight.", ZZ IF player2A$ = "TRUE" THEN name1$ = "Neptis Omega" color1 = 1 player2B$ = "TRUE" player2A$ = "FALSE" GOTO pickstart END IF IF player2B$ = "TRUE" THEN name2$ = "Neptis Omega" color2 = 1 IF name1$ = "Neptis Omega" THEN color2 = 9 GOTO 430 END IF name1$ = "Neptis Omega" name2$ = " Habeeb" name3$ = " Arch" name4$ = " Shceana" color1 = 1 color2 = 2 color3 = 3 color4 = 14 GOTO 430 310 CLS LOCATE 7, 1, 1, 31, 31 COLOR 3, 0 PRINT "You have chosen Arch." PRINT " He claims to just be in the fight to bring peace back to the kingdom," PRINT "but many suspect him of satanism." COLOR 4, 0 INPUT "Press ENTER to fight.", ZZZ IF player2A$ = "TRUE" THEN name1$ = "Arch" color1 = 3 player2B$ = "TRUE" player2A$ = "FALSE" GOTO pickstart END IF IF player2B$ = "TRUE" THEN name2$ = " Arch" color2 = 3 IF name1$ = "Arch" THEN color2 = 11 GOTO 430 END IF name1$ = "Arch" name2$ = " Shceana" name3$ = " Habeeb" name4$ = "Neptis Omega" color1 = 3 color2 = 14 color3 = 2 color4 = 1 GOTO 430 345 CLS LOCATE 7, 1, 1, 31, 31 COLOR 14, 0 PRINT "You have chosen Shceana." PRINT " Possibly the only one in the tournament just to bring peace. Shceana" PRINT "claims to not want anything else. Her only true advantage in the battle" PRINT "is her powers of healing and witchcraft." COLOR 4, 0 INPUT "Press ENTER to fight.", ZZZZ IF player2A$ = "TRUE" THEN name1$ = "Shceana" color1 = 14 player2B$ = "TRUE" player2A$ = "FALSE" GOTO pickstart END IF IF player2B$ = "TRUE" THEN name2$ = " Shceana" color2 = 14 IF name1$ = "Shceana" THEN color2 = 6 GOTO 430 END IF name1$ = "Shceana" name2$ = "Neptis Omega" name3$ = " Arch" name4$ = " Habeeb" color1 = 14 color2 = 1 color3 = 3 color4 = 2 GOTO 430 380 CLS xopl.code = 1 LOCATE 5, 1, 1, 31, 31 COLOR 15, 0 PRINT "Congradulations!" PLAY "o3;l5;f;l7;ee;l3;g" COLOR 8, 0 PRINT "You may now play as Xopl." COLOR 4, 0 INPUT "Press ENTER to fight.", ZZZZZ IF player2A$ = "TRUE" THEN name1$ = "Xopl" color1 = 8 player2B$ = "TRUE" player2A$ = "FALSE" GOTO pickstart END IF IF player2B$ = "TRUE" THEN name2$ = " Xopl" color2 = 8 IF name1$ = "Xopl" THEN color2 = 15 GOTO 430 END IF name1$ = "Xopl" name2$ = " Habeeb" name3$ = " Shceana" name4$ = " Arch" color1 = 8 color2 = 2 color3 = 14 color4 = 3 GOTO 430 430 SCREEN 8 game = 0 beginfight: CLS hx = 200 Chx = 400 game = game + 1 IF Bcode$ = "TRUE" THEN name2$ = " " color2 = 0 agress = 2000 END IF IF ncode = 1 THEN name2$ = "elpruN" agress = 1800 color2 = 5 ncode = 3 END IF IF scode = 1 THEN p1w = 1 game = 6 name2$ = "The Typo Demon" agress = 2000 color2 = 4 END IF IF game = 5 THEN IF name1$ = "Xopl" THEN GOTO badend IF game = 5 THEN GOTO gameend IF game = 1 THEN color2 = color2 IF game = 2 THEN color2 = color3 IF game = 3 THEN color2 = color4 IF game = 4 THEN color2 = 8 powA = 202 powB = 390 oldpowA = 202 oldpowB = 390 printpow$ = "FIRST" dr: COLOR 15, 0 IF printpow$ = "FIRST" THEN LOCATE 3, 2, 1, 31, 31 PRINT name1$ LOCATE 3, 62, 1, 31, 31 END IF IF printpow$ = "FIRST" THEN IF game = 1 OR game > 5 THEN PRINT name2$ IF game = 2 THEN PRINT name3$ IF game = 3 THEN PRINT name4$ IF game = 4 THEN PRINT " Xopl" IF game = 4 THEN agress = 2000 END IF IF printpow$ = "FIRST" OR powA <> oldpowA OR powB <> oldpowB THEN LINE (2, 4)-(202, 10), 4, BF LINE (390, 4)-(590, 10), 4, BF LINE (2, 4)-(powA, 10), 2, BF LINE (590, 4)-(powB, 10), 2, BF LINE (1, 3)-(203, 11), 7, B ' LINE (1, 11)-(203, 11), 8 ' LINE (203, 4)-(203, 11), 8 ' LINE (204, 3)-(204, 11), 8 ' ---> 3D looking border LINE (0, 3)-(0, 11), 7 ' LINE (389, 3)-(591, 11), 7, B ' LINE (389, 11)-(591, 11), 8 ' LINE (591, 4)-(591, 11), 8 ' LINE (592, 3)-(592, 11), 8 ' LINE (388, 3)-(388, 11), 7 ' END IF oldpowA = powA oldpowB = powB printpow$ = "NOT" GOTO 900 900 CIRCLE (hx, 50), 40, color1 LINE (hx, 68)-(hx, 150), color1 LINE (hx, 80)-(hx + 40, 90), color1 LINE (hx + 40, 90)-(hx + 70, 80), color1 LINE (hx, 80)-(hx + 40, 95), color1 LINE (hx + 40, 95)-(hx + 70, 85), color1 LINE (hx, 150)-(hx - 20, 180), color1 LINE (hx, 150)-(hx + 20, 180), color1 CIRCLE (Chx, 50), 40, color2 LINE (Chx, 68)-(Chx, 150), color2 LINE (Chx, 80)-(Chx - 40, 90), color2 LINE (Chx - 40, 90)-(Chx - 70, 80), color2 LINE (Chx, 80)-(Chx - 40, 95), color2 LINE (Chx - 40, 95)-(Chx - 70, 85), color2 LINE (Chx, 150)-(Chx - 20, 180), color2 LINE (Chx, 150)-(Chx + 20, 180), color2 drain = 0 IF player2B$ = "FALSE" THEN GOTO LOOPpp LOOPp: p12k$ = INKEY$ p2cs$ = p2cs$ + p12k$ IF LEN(p2cs$) > 200 THEN p2cs$ = "" IF xopl.code = 1 THEN IF INSTR(p2cs$, "ELPRUN") THEN p2cs$ = "" GOTO nurp.code END IF END IF SELECT CASE p12k$ CASE CHR$(0) + "M": GOTO R CASE CHR$(0) + "K": GOTO l CASE CHR$(0) + "H": GOTO hp CASE CHR$(0) + "P": GOTO lp CASE CHR$(102): GOTO R2 CASE CHR$(115): GOTO L2 CASE CHR$(101): GOTO hp2 CASE CHR$(100): GOTO lp2 CASE CHR$(27): GOTO 480 END SELECT GOTO LOOPp LOOPpp: p1k$ = INKEY$ code.str$ = code.str$ + p1k$ IF INSTR(code.str$, "slmxopl") THEN PRINT "NICE TRY!" code.str$ = "" END IF IF INSTR(code.str$, "slmpicklemanpowerup") THEN powA = 202 code.str$ = "" END IF IF INSTR(code.str$, "slmpicklemandrain") THEN IF game < 4 THEN drain = 1 code.str$ = "" END IF IF LEN(code.str$) > 200 THEN code.str$ = "" IF drain = 1 THEN powB = powB + 2 LINE (390, 4)-(590, 10), 4, BF LINE (590, 4)-(powB, 10), 2, BF IF powB >= 590 THEN GOTO p1win END IF SELECT CASE p1k$ CASE CHR$(0) + "M": GOTO R CASE CHR$(0) + "K": GOTO l CASE CHR$(0) + "H": GOTO hp CASE CHR$(0) + "P": GOTO lp CASE CHR$(13): GOTO player2set CASE CHR$(27): GOTO 480 END SELECT IF try = 1 THEN cntr1 = cntr1 + 1 '\ IF cntr1 = agress THEN ' \ cntr1 = 0 ' > Experimental AI for this engine GOTO computerp2 ' / END IF '/ END IF GOTO LOOPpp redraw: CIRCLE (hx, 50), 40, color1 LINE (hx, 68)-(hx, 150), color1 LINE (hx, 80)-(hx + 40, 90), color1 LINE (hx + 40, 90)-(hx + 70, 80), color1 LINE (hx, 80)-(hx + 40, 95), color1 LINE (hx + 40, 95)-(hx + 70, 85), color1 LINE (hx, 150)-(hx - 20, 180), color1 LINE (hx, 150)-(hx + 20, 180), color1 CIRCLE (Chx, 50), 40, color2 LINE (Chx, 68)-(Chx, 150), color2 LINE (Chx, 80)-(Chx - 40, 90), color2 LINE (Chx - 40, 90)-(Chx - 70, 80), color2 LINE (Chx, 80)-(Chx - 40, 95), color2 LINE (Chx - 40, 95)-(Chx - 70, 85), color2 LINE (Chx, 150)-(Chx - 20, 180), color2 LINE (Chx, 150)-(Chx + 20, 180), color2 RETURN hp2: GOSUB redraw LINE (Chx, 80)-(Chx - 40, 95), 0 LINE (Chx - 40, 95)-(Chx - 70, 85), 0 LINE (Chx, 80)-(Chx - 40, 80), color2 LINE (Chx - 40, 80)-(Chx - 70, 65), color2 PLAY "l15n0p64n0" LINE (Chx, 80)-(Chx - 40, 80), 0 LINE (Chx - 40, 80)-(Chx - 70, 65), 0 LINE (Chx, 80)-(Chx - 40, 95), color2 LINE (Chx - 40, 95)-(Chx - 70, 85), color2 IF powA <= 7 THEN GOTO p2win IF (Chx - 40) - (hx + 40) < 30 THEN powA = powA - 10 IF player2B$ = "FALSE" THEN IF game > 3 THEN powA = powA - 4 bld1 = 61 bld2 = 58 FOR i = 1 TO 3 bld1 = bld1 + 10 bld2 = bld2 + 10 a = circlefill(hx + 10, bld1, 3, 4) a = circlefill(hx + 20, bld2, 3, 4) FOR ii = 1 TO 200: NEXT a = circlefill(hx + 10, bld1, 3, 0) a = circlefill(hx + 20, bld2, 3, 0) NEXT END IF IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr lp2: GOSUB redraw LINE (Chx, 80)-(Chx - 40, 90), 0 LINE (Chx - 40, 90)-(Chx - 70, 80), 0 LINE (Chx, 80)-(Chx - 90, 70), color2 PLAY "l15n0p64n0" LINE (Chx, 80)-(Chx - 90, 70), 0 LINE (Chx, 80)-(Chx - 40, 90), color2 LINE (Chx - 40, 90)-(Chx - 70, 80), color2 IF powA <= 2 THEN GOTO p2win IF (Chx - 40) - (hx + 40) < 50 THEN powA = powA - 5 IF player2B$ = "FALSE" THEN IF game > 3 THEN powA = powA - 4 bld1 = 61 bld2 = 58 FOR i = 1 TO 3 bld1 = bld1 + 10 bld2 = bld2 + 10 a = circlefill(hx + 10, bld1, 3, 4) a = circlefill(hx + 20, bld2, 3, 4) FOR ii = 1 TO 200: NEXT a = circlefill(hx + 10, bld1, 3, 0) a = circlefill(hx + 20, bld2, 3, 0) NEXT END IF IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr R2: GOSUB redraw IF Chx + 70 > 630 THEN GOTO dr a = cheapcls Chx = Chx + 20 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr L2: GOSUB redraw IF Chx - 20 < 65 THEN GOTO dr IF (Chx - 40) - (hx + 40) < 30 THEN GOTO dr a = cheapcls Chx = Chx - 20 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr hp: LINE (hx, 80)-(hx + 40, 95), 0 LINE (hx + 40, 95)-(hx + 70, 85), 0 LINE (hx, 80)-(hx + 40, 80), color1 LINE (hx + 40, 80)-(hx + 70, 65), color1 PLAY "l15n0p64n0" LINE (hx, 80)-(hx + 40, 80), 0 LINE (hx + 40, 80)-(hx + 70, 65), 0 LINE (hx, 80)-(hx + 40, 95), color1 LINE (hx + 40, 95)-(hx + 70, 85), color1 IF powB >= 585 THEN GOTO p1win IF (Chx - 40) - (hx + 40) < 30 THEN powB = powB + 10 bld1 = 61 bld2 = 58 FOR i = 1 TO 3 bld1 = bld1 + 10 bld2 = bld2 + 10 a = circlefill(Chx - 10, bld1, 3, 4) a = circlefill(Chx - 20, bld2, 3, 4) PLAY "l64n0" a = circlefill(Chx - 10, bld1, 3, 0) a = circlefill(Chx - 20, bld2, 3, 0) NEXT END IF IF player2B$ = "FALSE" THEN GOTO computerp2 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr lp: LINE (hx, 80)-(hx + 40, 90), 0 LINE (hx + 40, 90)-(hx + 70, 80), 0 LINE (hx, 80)-(hx + 90, 70), color1 PLAY "l15n0p64n0" LINE (hx, 80)-(hx + 90, 70), 0 LINE (hx, 80)-(hx + 40, 90), color1 LINE (hx + 40, 90)-(hx + 70, 80), color1 IF powB >= 590 THEN GOTO p1win IF (Chx - 40) - (hx + 40) < 50 THEN powB = powB + 5 bld1 = 61 bld2 = 58 FOR i = 1 TO 3 bld1 = bld1 + 10 bld2 = bld2 + 10 a = circlefill(Chx - 10, bld1, 3, 4) a = circlefill(Chx - 20, bld2, 3, 4) PLAY "l64n0" a = circlefill(Chx - 10, bld1, 3, 0) a = circlefill(Chx - 20, bld2, 3, 0) NEXT END IF IF player2B$ = "FALSE" THEN GOTO computerp2 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr R: IF hx + 70 > 620 THEN GOTO dr IF (Chx - 40) - (hx + 40) < 30 THEN GOTO dr a = cheapcls hx = hx + 20 IF player2B$ = "FALSE" THEN GOTO computerp2 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr l: IF hx - 20 < 25 THEN GOTO dr a = cheapcls hx = hx - 20 IF player2B$ = "FALSE" THEN GOTO computerp2 IF INKEY$ = "" THEN END IF IF INKEY$ <> "" THEN END IF GOTO dr computerp2: RANDOMIZE TIMER IF powB <> oldpowB THEN RANDOMIZE TIMER + CINT(RND) cp4 = RND * 100 IF cp4 <= 60 THEN GOTO R2 IF cp4 <= 90 THEN GOTO hp2 IF cp4 <= 100 THEN GOTO lp2 GOTO dr END IF IF (Chx - 40) - (hx + 40) < 30 THEN RANDOMIZE TIMER + CINT(RND) cp1 = RND * 100 IF cp1 <= 60 THEN GOTO hp2 IF cp1 <= 100 THEN GOTO lp2 GOTO dr END IF IF (Chx - 40) - (hx + 40) < 50 THEN RANDOMIZE TIMER + CINT(RND) cp2 = RND * 100 IF cp2 <= 60 THEN GOTO lp2 IF cp2 <= 90 THEN GOTO L2 IF cp2 <= 100 THEN GOTO hp2 GOTO dr END IF IF (Chx - 40) - (hx + 40) > 50 THEN RANDOMIZE TIMER + CINT(RND) cp3 = RND * 100 IF cp3 <= 70 THEN GOTO L2 IF cp3 <= 100 THEN GOTO R2 GOTO dr END IF player2set: player2A$ = "TRUE" PLAY "l16o2bbb" LINE (100, 50)-(500, 150), 4, BF LINE (105, 52)-(495, 148), 0, BF COLOR 15, 0 LOCATE 8, 29, 1, 31, 31 PRINT "Welcome Player 2..." LOCATE 11, 15, 1, 31, 31 PRINT "Player 1 controls:" LOCATE 12, 17, 1, 31, 31 PRINT CHR$(27); " = Move Left "; CHR$(26); " = Move Right "; CHR$(24); " = Uppercut " LOCATE 13, 17, 1, 31, 31 PRINT CHR$(25); " = Punch" LOCATE 15, 15, 1, 31, 31 PRINT "Player 2 controls:" LOCATE 16, 17, 1, 31, 31 PRINT "Make sure CAPS LOCK is off!" LOCATE 17, 17, 1, 31, 31 PRINT "s = Move Left f = Move Right e = Uppercut" LOCATE 18, 17, 1, 31, 31 PRINT "d = Punch" p2loop: IF INKEY$ = CHR$(13) THEN GOTO pickstart GOTO p2loop: p1win: cntr1 = 0 IF p1w = 10 THEN GOTO streakcode IF Bcode$ = "TRUE" THEN GOTO Bcodeend1 IF scode = 1 THEN GOTO s.end LINE (390, 4)-(590, 10), 4, BF COLOR 4, 0 LOCATE 3, 31, 1, 31, 31 PRINT "Player1 Wins" IF player2B$ = "TRUE" THEN p1w = p1w + 1 LOCATE 4, 26, 1, 31, 31 PRINT "P1 "; p1w; " wins P2 "; p2w; " wins" player2B$ = "FALSE" player2A$ = "TRUE" winloopx1: IF INKEY$ = CHR$(13) THEN GOTO pickstart GOTO winloopx1 END IF winloop: IF INKEY$ = CHR$(13) THEN GOTO beginfight GOTO winloop: p2win: IF p2w = 10 THEN GOTO streakcode IF Bcode$ = "TRUE" THEN GOTO Bcodeend2 IF player2B$ = "FALSE" THEN p1loss = p1loss + 1 IF p1loss = 2 THEN GOTO 480 END IF LINE (2, 4)-(202, 10), 4, BF COLOR 4, 0 LOCATE 3, 31, 1, 31, 31 PRINT "Player2 Wins" IF player2B$ = "TRUE" THEN p2w = p2w + 1 LOCATE 4, 26, 1, 31, 31 PRINT "P1 "; p1w; " wins P2 "; p2w; " wins" player2B$ = "FALSE" player2A$ = "TRUE" winloopx2: IF INKEY$ = CHR$(13) THEN GOTO pickstart GOTO winloopx2 END IF game = game - 1 winloop2: IF INKEY$ = CHR$(13) THEN GOTO beginfight GOTO winloop2 s.end: CLS COLOR 15, 0 LOCATE 5, 1, 0 PRINT "You have defeated the Typo Demon. People all over the world rejoice." PRINT "You are rewarded by the grateful citizens of earth." WHILE INKEY$ <> CHR$(13): WEND GOTO quit badend: CLS COLOR 4, 0 LOCATE 12, 10, 1, 31, 31 PRINT "Fool! Killing Lord Xopl is just killing yourself." LOCATE 13, 10, 1, 31, 31 PRINT " Suicide is no answer. Darkness awaits..." bdloop: IF INKEY$ = CHR$(13) THEN GOTO 480 IF INKEY$ = CHR$(66) THEN game = 6 Bcode$ = "TRUE" GOTO beginfight END IF GOTO bdloop gameend: CLS game.won = 1 COLOR 4, 0 ge1$ = " Lord Xopl falls to the ground in a pool of his own blood. The people " ge2$ = "and land are freed from darkness and Xopl's minions flee in terror. The " ge3$ = "kingdom now follows you, the new king. Peace is everywhere once again. " ge4$ = " One day your peace is broken by hideous laughter. Fear is wonderful..." ge5$ = " Soon this peace is broken by you and your hordes of theives. Another " ge5b$ = "group of challengers is soon formed. They have no pity for theives... " ge6$ = " After a year of peace they soon realize you are a evil ruler. Your " ge6b$ = "demonic ways frighten them into their own deaths..." ge7$ = " After you gain their trust you lead them into the sea and to doom... " a$ = spell$(ge1$, 71, 10, 1) a$ = spell$(ge2$, 71, 11, 1) a$ = spell$(ge3$, 71, 12, 1) IF name1$ = "Shceana" THEN a$ = spell$(ge4$, 72, 13, 1) IF name1$ = "Habeeb" THEN a$ = spell$(ge5$, 71, 13, 1) a$ = spell$(ge5b$, 71, 14, 1) END IF IF name1$ = "Arch" THEN a$ = spell$(ge6$, 71, 13, 1) a$ = spell$(ge6b$, 52, 14, 1) END IF IF name1$ = "Neptis Omega" THEN a$ = spell$(ge7$, 71, 13, 1) GOTO 480 Bcodeend1: CLS LOCATE 10, 1, 1, 31, 31 COLOR 4, 0 PRINT " You have regained your life from the Netherworld, but you are now a" PRINT "slave of evil..." loopBc1: IF INKEY$ = CHR$(13) THEN GOTO 480 GOTO loopBc1 Bcodeend2: CLS COLOR 4, 0 LOCATE 10, 1, 1, 31, 31 PRINT " Your soul now belongs to the Lord of the Netherworld. Have a nice day." loopBc2: IF INKEY$ = CHR$(13) THEN GOTO 480 GOTO loopBc2 streakcode: SCREEN 8 CLS LOCATE 9, 1, 1, 31, 31 COLOR 15, 0 PRINT " You shouldn't play so long, you might start seeing things..." WHILE INKEY$ <> CHR$(13): WEND scode = 1 player2B$ = "FALSE" GOTO beginfight nurp.code: CLS LOCATE 10, 5, 0 COLOR 5, 0 PRINT " Thou shalt now enter thy world of thy elprun. Be warned, as thy great" PRINT "elprun are not to be taken lightly! They may be thy most powerful creatures" PRINT "in existance. I hath warned thee..." PRINT PRINT " -PICKLE MAN-" WHILE INKEY$ = "": WEND ncode = 1 game = 5 player2B$ = "FALSE" GOTO beginfight 480 CLS SCREEN 8 color1 = 8 CIRCLE (hx, 50), 40, color1 LINE (hx, 68)-(hx, 150), color1 LINE (hx, 80)-(hx + 40, 90), color1 LINE (hx + 40, 90)-(hx + 70, 80), color1 LINE (hx, 80)-(hx + 40, 95), color1 LINE (hx + 40, 95)-(hx + 70, 85), color1 LINE (hx, 150)-(hx - 20, 180), color1 LINE (hx, 150)-(hx + 20, 180), color1 COLOR 15, 0 LOCATE 13, 35, 1, 31, 31 PRINT "GAME OVER" COLOR 8, 0 LOCATE 15, 18, 0 PRINT CHR$(34); "That which seems to be is not always true."; CHR$(34) SLEEP (3) quit: 'scroll the credits SCREEN 0 CLS COLOR 10, 0 cred.len = 22 cred.cntr = 0 sline = 23 RESTORE credits FOR i = 1 TO cred.len CLS sline = sline - 1 LOCATE sline, 1, 0 cred.cntr = cred.cntr + 1 FOR ll = 1 TO cred.cntr READ cred.txt$ PRINT cred.txt$ NEXT RESTORE credits FOR dd = 1 TO speed: NEXT NEXT SLEEP (3) LOCATE 23, 1, 0 FOR i = 1 TO 5 PRINT " " FOR ll = 1 TO speed: NEXT NEXT PRINT " Hope you liked it " FOR i = 1 TO 10 PRINT " " FOR ll = 1 TO speed: NEXT NEXT SLEEP (2) FOR i = 1 TO 15 PRINT " " FOR ll = 1 TO speed: NEXT NEXT credits: DATA " " DATA " Boring Credit Stuff:" DATA " " DATA " " DATA "Effects............................................................Xopl" DATA "Graphics...........................................................Xopl" DATA "Game Engine........................................................Xopl" DATA "Code...............................................................Xopl" DATA "Everything :-) ....................................................Xopl" DATA " " DATA " ***" DATA " " DATA "Special Thanks: Psycho BFG and 666 for their AWESOME!! Lucifer wormhole demo!" DATA " It might have nothing to do with this game... but it ROCKS!!" DATA " " DATA " ***" DATA " " DATA "All code in this program was created originally, from scratch, by Xopl." DATA "No code was used from other fighting games." DATA " " DATA " Copyright (C) 1995-1997 Xopl" DATA " " FUNCTION cheapcls LINE (0, 24)-(640, 200), 0, BF END FUNCTION FUNCTION circlefill (x, y, R, c) CIRCLE (x, y), R, c FOR i = 1 TO R R = R - 1 CIRCLE (x, y), R, c NEXT ' I don't want to use PAINT.. so there! END FUNCTION FUNCTION spell$ (word$, length, row, col) xnum = 0 FOR i = 1 TO length xnum = xnum + 1 LOCATE row, col, 1, 31, 31 PLAY "l40n0p40" PRINT LEFT$(word$, xnum) NEXT END FUNCTION