CHDIR ".\programs\samples\qb45com\action\sfb2" ' SFB2:Vector Warriors ` ' by Kevin Reems ` ' 1997--1998 ` ' Created Using, ` ' The Slash Engine by Kevin Reems 1997-1998 ` '----------------------------------------------------------------------------` 'Press F5 To Play ` ' ` 'Kevin Reems a.k.a. LBt1st - lbt1st@cyberdude.com ` ' Please View SFB2 Guide Part-A.html ` ' ` ' ` ' ` ' ` ' ` ' ` ' ` '----------------------------------------------------------------------- SFB2 DECLARE SUB AIsuper (pc%, po%) DECLARE SUB AIfighter (pc%) DECLARE SUB AIspecial (pc%, po%) DECLARE SUB AI (pc%) DECLARE SUB fightername (n%) DECLARE SUB options () DECLARE SUB settings () DECLARE SUB setdetails () DECLARE SUB ringout (n) DECLARE SUB floors () DECLARE SUB splash (n) DECLARE SUB fighterpop (n) DECLARE SUB fightergoo (wee, d) DECLARE SUB fighterfreeze (wee) DECLARE SUB fightercompress (n%) DECLARE SUB fighterpositions () DECLARE SUB fighterinit () DECLARE SUB fighterender () DECLARE SUB fightermove () DECLARE SUB ringoutext (n) DECLARE SUB fighterlimits () DECLARE SUB projectiles () DECLARE SUB projectilerender () DECLARE SUB setdelay () DECLARE SUB smear (x%, y%, Z, c%) DECLARE SUB smearender () DECLARE SUB stagewindow (mode%) DECLARE SUB ocasional () DECLARE SUB camtracking () DECLARE SUB newmatch () DECLARE SUB Conclusion () DECLARE SUB setfightercpu () DECLARE SUB setfighter () DECLARE SUB fall (n) DECLARE SUB nokey () DECLARE SUB jump (n%, T%) DECLARE SUB setbody (n%) DECLARE SUB setko (n) DECLARE SUB keycheck () DECLARE SUB decap (n%) DECLARE SUB fades () DECLARE SUB fighterdirect () DECLARE SUB rain2d (c1%, c2%, c3%, l!) DECLARE SUB rain3d (x1!, y1!, z1!, x2!, y2!, z2!, c1%, c2%, c3%, l!) DECLARE SUB setstagename (n%) DECLARE SUB AIgetclose (pc%, po%) DECLARE SUB AIdefend (pc%, po%) DECLARE SUB AIattack (pc%, po%) '------------------------------------------------- Perspective Space Commands DECLARE SUB pspoint (x, y, Z) : ' Point DECLARE SUB pspset (x, y, Z, c%) : ' Pset DECLARE SUB psdpset (x, y, z1, z2, c%) : ' Deep Pset DECLARE SUB psline (x1, y1, z1, x2, y2, z2, c%, B%) : ' Line DECLARE SUB psdline (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, B%) : 'Deep Line DECLARE SUB pscline (x1, y1, z1, x5, y5, z5, r, c%) : ' Circle Line DECLARE SUB pslightning (x1, y1, z1, x5, y5, z5, r, c%) : ' Lightning DECLARE SUB pscircle (x, y, Z, r1, c%) : ' Circle DECLARE SUB pscube (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%) : ' Cube DECLARE SUB psmark1 (x, y, Z, c1%, c2%, c3%) : ' Mark1 DECLARE SUB psmark2 (x, y, c1%, c2%, c3%) : ' Mark2 DECLARE SUB particle (x, y, Z, T%, Q%) : ' Spawn particle(s) DECLARE SUB particle2 (x, y, Z, T%, Q%) : ' Continued Spawning DECLARE SUB particlerender () : ' Render particles% DECLARE SUB setparticles () : ' Particle Options DECLARE SUB particlerender () : ' Renders particles% DECLARE SUB particlemove () : ' Moves them DECLARE SUB particleclear () : ' Clears them DECLARE SUB decay () : ' Kill them '------------------------------------------------------------- Slash Commands 'Sound DECLARE FUNCTION DetectCard% () DECLARE SUB sbinit () DECLARE SUB SBplay (Freq%, Wave%, Feedback%, Modl%, Clen%) DECLARE SUB SBWrite (Reg%, Value%) DECLARE SUB sbfx (fxx%) 'Set Sound Options DECLARE SUB setsound () 'Clear Space For Text 'open DECLARE SUB smallwindow () DECLARE SUB bigwindow () 'close DECLARE SUB csmallwindow () DECLARE SUB cbigwindow () 'Let User Load/Save/Reset DECLARE SUB loadsave () 'n = 1 Load n = 2 Save n = 3 Reset Defaults 'mode% = n: CALL file DECLARE SUB file () 'Change Screen Resolution DECLARE SUB setrez () 'Change Clear Method DECLARE SUB setcmethod () 'Change frameskip% DECLARE SUB setframeskip () 'Change Stage% DECLARE SUB setstage () 'Apply Movement to Camera DECLARE SUB movecam () 'Exit the Program DECLARE SUB quit () 'Window x/y DECLARE SUB winxwiny () 'Slash Mud DECLARE SUB mud () 'Temporary Blur DECLARE SUB blur (l%) 'Reset Camera Defaults DECLARE SUB camdefaults () 'Page Flip DECLARE SUB pflip () 'Clear Screen DECLARE SUB clearscreen () 'Block Clearing DECLARE SUB clsblock (n) 'Pauses DECLARE SUB pause () 'Waits for Input After an Error Trap DECLARE SUB errorkey () '2D Stars DECLARE SUB stars2d (c1%, c2%, c3%) '3D Stars DECLARE SUB stars3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%) 'Offset the Stars DECLARE SUB starsoffset (x, y) 'Randomize Stars DECLARE SUB starsrnd () 'Set Number of Stars DECLARE SUB setstars () 'Sets defaults for the current stage DECLARE SUB stageinit () 'Stage Shifting DECLARE SUB stageshifting () 'Render current stage DECLARE SUB stagebackground () DECLARE SUB stageforground () 'Display i16 Image DECLARE SUB i16 (x, y, x2, y2, F$) DECLARE SUB seti16 () 'Get path$ from file DECLARE SUB getpath () 'Set path$ DECLARE SUB setpath () 'Render Something on Page 2 DECLARE SUB page2 () 'Test the Video Pages DECLARE SUB pagetest () 'Define Window for 2D or 3D Mode DECLARE SUB window2d () DECLARE SUB window3d () '----------------------------------------------------------- Shared Variables COMMON SHARED stars1x, stars1y, stars1z, stars2x, stars2y, stars2z, stars3x, stars3y, stars3z COMMON SHARED zoom, zoomd, zoomt, panx, pany, panh, panv, midx%, midy%, winx, winy, rez%, xx1, xx2, yy1, yy2, wx, wy, wz, ringoutt%, ringoutp%, victory%, control%, pointc%, refreash, flimits%, dist%, dif%, AImoved% COMMON SHARED restart%, frameskip%, cmethod%, cfreq%, blurr%, csave%, nstars%, stage%, bob, flash1%, flash2%, flash3%, ver$, trigger1, trigger2, trigger3, solidc%, tpause%, bgcolor% COMMON SHARED gravity, particles%, floor1, floor2, floor3, fault$, setback%, mode%, odds%, ticker%, bobm, midstage, camode%, i16m%, smears%, stagemode%, stages%, delay%, walkx, stagename$ COMMON SHARED sbsound%, P1d, P2d, soundticker%, soundwait%, path$, wee$, hfade%, ctime%, clsb%, pflip1%, pflip2%, ring%, startfight%, stageset%, stagedetail%, fighterdetail%, hudetail% ON ERROR GOTO 8 fault$ = "dim" '------------------------------------------------------------------- Fighters DIM SHARED hairt%(1 TO 2) DIM SHARED hairl%(1 TO 2) DIM SHARED hairc%(1 TO 2) DIM SHARED hairx(1 TO 10) DIM SHARED hairy(1 TO 10) DIM SHARED projectile%(1 TO 6) DIM SHARED projectilex(1 TO 6) DIM SHARED projectiley(1 TO 6) DIM SHARED projectileh(1 TO 6) DIM SHARED projectilev(1 TO 6) DIM SHARED projectilet%(1 TO 6) DIM SHARED name$(1 TO 2) DIM SHARED walkx(1 TO 2) DIM walkh(1 TO 2) DIM SHARED health%(1 TO 2) DIM SHARED maxhp%(1 TO 2) DIM SHARED hpslide%(1 TO 2) DIM SHARED sdelay%(1 TO 2) DIM SHARED ko(1 TO 2) DIM SHARED koslide%(1 TO 2) DIM SHARED AIactive%(1 TO 2) DIM SHARED AIhs%(1 TO 2) DIM SHARED AIhm%(1 TO 2) DIM SHARED AIhl%(1 TO 2) DIM SHARED AIhh%(1 TO 2) DIM SHARED AIfs%(1 TO 2) DIM SHARED AIfm%(1 TO 2) DIM SHARED AIfl%(1 TO 2) DIM SHARED AIfh%(1 TO 2) DIM SHARED ahpow%(1 TO 2) DIM SHARED akpow%(1 TO 2) DIM SHARED lhpow%(1 TO 2) DIM SHARED lkpow%(1 TO 2) DIM SHARED hc%(1 TO 2) DIM SHARED kc%(1 TO 2) DIM SHARED attackok%(1 TO 2) DIM SHARED rage(1 TO 2) DIM SHARED vexed%(1 TO 2) DIM SHARED ragecharge(1 TO 2) DIM SHARED razers%(1 TO 2) DIM SHARED kocharge(1 TO 2) DIM SHARED win%(1 TO 2) DIM SHARED combo%(1 TO 2) DIM SHARED combol%(1 TO 2) DIM SHARED Special%(1 TO 2) DIM SHARED headless%(1 TO 2) DIM SHARED hx(1 TO 2) DIM SHARED hy(1 TO 2) DIM SHARED hh(1 TO 2) DIM SHARED hv(1 TO 2) DIM SHARED canjump%(1 TO 2) DIM SHARED position%(1 TO 2) DIM SHARED d%(1 TO 2) DIM SHARED ds%(1 TO 2) DIM SHARED pticker%(1 TO 2) DIM SHARED psaver%(1 TO 2) DIM SHARED fighterz(1 TO 2) DIM SHARED fighterd(1 TO 2) DIM SHARED headx(1 TO 4) DIM SHARED neckx(1 TO 4) DIM SHARED buttx(1 TO 4) DIM SHARED elbow1x(1 TO 4) DIM SHARED elbow2x(1 TO 4) DIM SHARED hand1x(1 TO 4) DIM SHARED hand2x(1 TO 4) DIM SHARED nee1x(1 TO 4) DIM SHARED nee2x(1 TO 4) DIM SHARED foot1x(1 TO 4) DIM SHARED foot2x(1 TO 4) DIM SHARED heady(1 TO 4) DIM SHARED necky(1 TO 4) DIM SHARED butty(1 TO 4) DIM SHARED elbow1y(1 TO 4) DIM SHARED elbow2y(1 TO 4) DIM SHARED hand1y(1 TO 4) DIM SHARED hand2y(1 TO 4) DIM SHARED nee1y(1 TO 4) DIM SHARED nee2y(1 TO 4) DIM SHARED foot1y(1 TO 4) DIM SHARED foot2y(1 TO 4) DIM SHARED headh(1 TO 2) DIM SHARED neckh(1 TO 2) DIM SHARED butth(1 TO 2) DIM SHARED elbow1h(1 TO 2) DIM SHARED elbow2h(1 TO 2) DIM SHARED hand1h(1 TO 2) DIM SHARED hand2h(1 TO 2) DIM SHARED nee1h(1 TO 2) DIM SHARED nee2h(1 TO 2) DIM SHARED foot1h(1 TO 2) DIM SHARED foot2h(1 TO 2) DIM SHARED headv(1 TO 2) DIM SHARED neckv(1 TO 2) DIM SHARED buttv(1 TO 2) DIM SHARED elbow1v(1 TO 2) DIM SHARED elbow2v(1 TO 2) DIM SHARED hand1v(1 TO 2) DIM SHARED hand2v(1 TO 2) DIM SHARED nee1v(1 TO 2) DIM SHARED nee2v(1 TO 2) DIM SHARED foot1v(1 TO 2) DIM SHARED foot2v(1 TO 2) 'Body Part Types DIM SHARED head%(1 TO 2) DIM SHARED body%(1 TO 2) DIM SHARED arms%(1 TO 2) DIM SHARED hands%(1 TO 2) DIM SHARED legs%(1 TO 2) DIM SHARED feet%(1 TO 2) 'Body Part Colors DIM SHARED headc%(1 TO 2) DIM SHARED bodyc%(1 TO 2) DIM SHARED armsc%(1 TO 2) DIM SHARED handsc%(1 TO 2) DIM SHARED legsc%(1 TO 2) DIM SHARED feetc%(1 TO 2) '------------------------------------------------------------------ Particles DIM SHARED p%(1 TO 90) DIM SHARED pk%(1 TO 90) DIM SHARED pg%(1 TO 90) DIM SHARED pf%(1 TO 90) DIM SHARED px(1 TO 90) DIM SHARED py(1 TO 90) DIM SHARED pz(1 TO 90) DIM SHARED ph(1 TO 90) DIM SHARED pv(1 TO 90) DIM SHARED pd(1 TO 90) DIM SHARED pc1%(1 TO 90) DIM SHARED pc2%(1 TO 90) DIM SHARED pc3%(1 TO 90) '---------------------------------------------------------------------- Stars DIM SHARED stars1x(1 TO 20) DIM SHARED stars1y(1 TO 20) DIM SHARED stars1z(1 TO 20) DIM SHARED stars2x(1 TO 20) DIM SHARED stars2y(1 TO 20) DIM SHARED stars2z(1 TO 20) DIM SHARED stars3x(1 TO 20) DIM SHARED stars3y(1 TO 20) DIM SHARED stars3z(1 TO 20) '--------------------------------------------------------------- Blood Smears DIM SHARED smearl%(1 TO 10) DIM SHARED smearx%(1 TO 10) DIM SHARED smeary%(1 TO 10) DIM SHARED smearz(1 TO 10) DIM SHARED smearc%(1 TO 10) '---------------------------------------------------------------------------- 'Begin the Program Begin the Program` '---------------------------------------------------------------------------- '----------------------------------------------------------------- Disclaimer SCREEN 8 COLOR , 0 c% = 4 FOR wee = 1 TO 6 COLOR c%, 0 LOCATE 10, 36 PRINT "WARNING:" PRINT "" PRINT "SFB2: Vector Warriors Contains Graphic Violence And Gore That May Be Offending." LOCATE 14, 27: PRINT "Player Discretion Advised." SELECT CASE wee CASE IS = 1: c% = 12 CASE IS = 2: c% = 15 CASE IS = 3: c% = 12: SLEEP 3 CASE IS = 4: c% = 4 CASE IS = 5: c% = 0 END SELECT FOR d% = 0 TO 15000: NEXT d% NEXT wee '---------------------------------------------------------------------------` 'Init ----------------------------------------------------------------- Init` '---------------------------------------------------------------------------` 4 CLEAR fault$ = "init" '------------------------------------+ * 'Error And Version Information ON ERROR GOTO 8: e% = 1 ver$ = "1.00" '------------------------------------+ * 'Show Error Detection Message IF e% = 0 THEN LOCATE 1, 1 COLOR 15 PRINT "Error Detection is OFF" SLEEP END IF RANDOMIZE (TIMER) 'Set NumLock to ON DEF SEG = 0 KeyFlags = PEEK(1047) POKE 1047, KeyFlags OR 32 IF (KeyFlags AND 32) = 0 THEN DEF SEG: DEF SEG = 0 '---------------------------------------------------------------------------` 'Defaults -=======================================================- Defaults` '---------------------------------------------------------------------------` '-------------------------+ Required by Slash getpath mode% = 1: file setback% = 0 starsrnd pflip1% = 1 flash1% = 1 mud camdefaults IF sbsound% = 1 THEN sbinit '-------------------------+ Required by Program stagemode% = 1 stages% = 15 setfightercpu stageinit walkh(1) = .5 walkh(2) = .5 '---------------------------------------------------------------------------` 'End Defaults -===============================================- End Defaults` '---------------------------------------------------------------------------` '-------------------------- Ready Screen for Slash IF rez% <> 1 AND rez% <> 7 AND rez% <> 9 AND rez% <> 12 THEN rez% = 9 SCREEN rez% window3d '--------------------- Clear Vars. fault$ = "" wee$ = "" neckx(3) = -50 neckx(4) = 50 '---------------------------------------------------------------------------- 'Start Loop ===================================================== Start Loop` '---------------------------------------------------------------------------- DO '--------------------- IF restart% = 1 THEN restart% = 0 SCREEN , 1, 1 CLS SCREEN , 0, 0 CLS GOTO 4 END IF '---------------------------------------------------------- Alternating Vars. IF odds% = 0 THEN odds% = 1 ELSE odds% = 0 FOR pc1 = 1 TO 2 IF walkx(pc1) < 0 THEN walkh(pc1) = .8 IF walkx(pc1) > 4 THEN walkh(pc1) = -.8 walkx(pc1) = walkx(pc1) + walkh(pc1) NEXT pc1 '--------------------- SELECT CASE flash1% CASE IS = 9 flash1% = 1 flash2% = 9 flash3% = 4 CASE IS = 1 flash1% = 9 flash2% = 15 flash3% = 12 END SELECT '--------------------- IF bob < 0 THEN bobm = bobm + .01 ELSE bobm = bobm - .01 bob = bob + bobm '--------------------- IF soundticker% > 0 THEN soundticker% = soundticker% - 1 '----------------------------------------------------------- Keyboard Control IF wee$ <> "" THEN DEF SEG = &H40 POKE &H1A, PEEK(&H1C) END IF wee$ = UCASE$(INKEY$) 'Disable Kicks for Demize IF legs%(1) = 666 THEN IF wee$ = "A" THEN wee$ = "Q" IF wee$ = "S" THEN wee$ = "W" END IF SELECT CASE wee$ 'Game Functions CASE IS = CHR$(27): options CASE IS = "P": pause END SELECT '-------------------------------------------------------------------- Control IF position%(1) = 1 OR position%(1) = 12 THEN attackok%(1) = 1 ELSE attackok%(1) = 0 IF position%(2) = 1 OR position%(2) = 12 THEN attackok%(2) = 1 ELSE attackok%(2) = 0 IF control% = 1 AND AIactive%(1) = 0 AND wee$ <> "" THEN 'Convert Extra Keys To Standard Commands SELECT CASE wee$ CASE IS = CHR$(0) + "H": wee$ = "8" CASE IS = CHR$(0) + "K": wee$ = "4" CASE IS = CHR$(0) + "P": wee$ = "5" CASE IS = CHR$(0) + "M": wee$ = "6" CASE IS = "2": wee$ = "5" END SELECT 'Standard Commands IF Special%(1) = 0 THEN 'Normal Moves SELECT CASE wee$ CASE IS = "Q": IF attackok%(1) = 1 AND pticker%(1) > 2 THEN position%(1) = 2 CASE IS = "W": IF position%(1) = 1 AND pticker%(1) > 5 THEN position%(1) = 3 ELSE IF position%(1) = 12 THEN position%(1) = 13 CASE IS = "A": IF attackok%(1) = 1 AND pticker%(1) > 2 THEN position%(1) = 5 CASE IS = "S": IF attackok%(1) = 1 THEN position%(1) = 6 END SELECT ELSE 'Special Moves SELECT CASE wee$ CASE IS = "Q" SELECT CASE hands%(1) CASE 1, 666: IF projectile%(1) = 0 THEN position%(1) = 30 CASE 2: position%(1) = 31 CASE 3: position%(1) = 32 CASE 4, 1998: position%(1) = 33 CASE 5: IF projectile%(1) = 0 THEN position%(1) = 34 END SELECT CASE IS = "W" SELECT CASE hands%(1) CASE 1, 666: IF projectile%(2) = 0 THEN position%(1) = 35 CASE 2: position%(1) = 36 CASE 3: position%(1) = 37 CASE 4: position%(1) = 38 CASE 5: position%(1) = 39 CASE 1998: position%(1) = 82 END SELECT CASE IS = "A" SELECT CASE feet%(1) CASE 1: position%(1) = 40 CASE 2: position%(1) = 41 CASE 3: position%(1) = 42 CASE 4: position%(1) = 43 CASE 5: position%(1) = 44 END SELECT CASE IS = "S" SELECT CASE feet%(1) CASE 1: position%(1) = 45 CASE 2: IF pticker%(1) > 25 THEN position%(1) = 46 CASE 3: IF canjump%(1) = 1 THEN position%(1) = 47 CASE 4: position%(1) = 48 CASE 5: position%(1) = 49 END SELECT END SELECT END IF 'Supers IF wee$ = "D" AND rage(1) >= 100 AND attackok%(1) = 1 AND pticker%(1) > 5 THEN SELECT CASE body%(1) CASE 1: position%(1) = 81 CASE 2: position%(1) = 82 CASE 3: position%(1) = 83 CASE 4: position%(1) = 84 CASE 5: position%(1) = 85 CASE 6: IF position%(1) = 1 THEN position%(1) = 86 CASE 7: IF position%(1) = 1 THEN position%(1) = 87 CASE 8: position%(1) = 88 CASE 666: position%(1) = 36 END SELECT END IF SELECT CASE wee$ CASE IS = "4": IF canjump%(1) = 1 THEN butth(1) = butth(1) - .5: IF butth(1) > 0 THEN butth(1) = 0 CASE IS = "6": IF canjump%(1) = 1 THEN butth(1) = butth(1) + .5: IF butth(1) < 0 THEN butth(1) = 0 CASE IS = "7": jump (1), 1 CASE IS = "8": jump (1), 2 CASE IS = "9": jump (1), 3 CASE IS = "5": IF canjump%(1) = 1 THEN position%(1) = 12 CASE IS = "E": IF Special%(1) = 0 THEN Special%(1) = 1 ELSE Special%(1) = 0 CASE IS = "R", " ": IF attackok%(1) = 1 AND pticker%(1) > 10 THEN position%(1) = 99 END SELECT END IF '---------- AI IF control% = 1 THEN dist% = ABS(buttx(1) - buttx(2)) IF AIactive%(1) = 1 AND attackok%(1) = 1 THEN AI 1 IF AIactive%(2) = 1 AND attackok%(2) = 1 THEN AI 2 END IF '----------------------------------------------------------------------- Misc 'Show Ready, Begin Stuff IF ticker% = startfight% AND stage% <> 1000 THEN showbegin% = 50 IF showbegin% > 0 THEN showbegin% = showbegin% - 1: COLOR 15: LOCATE 22, 1: PRINT stagename$ IF showbegin% > 30 THEN COLOR 4: LOCATE 4, 38: PRINT "Ready" IF showbegin% > 0 AND showbegin% < 25 THEN COLOR 12: LOCATE 4, 38: PRINT "Begin!": control% = 1 'Run the Ocasional SUB occ% = occ% + 1: IF occ% > 5 THEN occ% = 0: ocasional '------------------------------------+ FOR wee = 1 TO 2 'Bleed when low on health IF health%(wee) < RND * 50 AND RND < .5 THEN particle (headx(wee + 2)), (heady(wee + 2) + (RND * 30)), (fighterz(wee)), 0, 1 'Gush blood when headless IF headless%(wee) = 1 THEN IF ABS(butty(wee) - necky(wee + 2)) > 5 THEN particle (neckx(wee + 2)), (necky(wee + 2) - 5), fighterz(wee), 2, 1 END IF 'Fall When KO or Dead IF health%(wee) <= 0 OR ko(wee) <= 0 THEN ocasional Conclusion IF position%(wee) < 8 OR position%(wee) > 11 THEN fall (wee) END IF 'Keep health & ko within limits IF health%(wee) < 0 THEN health%(wee) = 0 IF ko(wee) < 0 THEN ko(wee) = 0 IF rage(wee) > 100 THEN rage(wee) = 100 '-------------------------------------------------------------+ IF ticker% = 1 THEN SELECT CASE stage% CASE 1 fighterfreeze (wee) position%(wee) = 0 CASE 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 1000 position%(wee) = 1 END SELECT END IF '-------------------------------------------------------------+ 'Combo Life IF combol%(wee) > 0 THEN combol%(wee) = combol%(wee) - 1 IF combol%(wee) = 0 THEN combo%(wee) = 0 END IF NEXT wee '-------------------------------------------------------------- Get Framerate cyc% = cyc% + 1 IF TIMER - time > .6 THEN refreash = cyc% cyc% = 0 time = TIMER END IF '--------------------------------------------------------------------- Camera camtracking movecam '----------------------------------------------------------------- Move Stuff fighterpositions floors fightermove projectiles IF odds% = 1 THEN particlemove '---------------------------------------------------------------------------` '==================================================================== Display '---------------------------------------------------------------------------` 'Color Fades fades 'Stage Shifting stageshifting 'Page Flipping IF newdisplay% = 1 THEN newdisplay% = 0: pflip 'Temporary Pausing IF tpause% > 0 THEN tpause% = tpause% - 1: COLOR , 0: SLEEP 1 'Object Life Decaying decay 'Frame Skipping 'norender% = norender% + 1 'IF norender% < frameskip% AND blurr% = 0 THEN 3 ELSE norender% = 0 'Delays 'FOR wee = 0 TO delay%: NEXT wee 'flicker = TIMER: DO UNTIL TIMER - flicker > .00001: LOOP _LIMIT 25 'Clear Screen clearscreen '============================================================ Render Graphics 'Draw Background Image If In Screen 8 'IF rez% = 8 THEN PCOPY 2, pflip1% 'Background stagebackground 'Render Smears IF smears% = 1 THEN smearender 'Render Fighters fighterender 'Render projectiles projectilerender 'Render particals IF particles% > 0 THEN particlerender 'Forground stageforground newdisplay% = 1 3: '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- End of 3D Graphics '------------------------------------------------------------------------ HUD fault$ = "hud" window2d 'Show VS. Info IF ticker% < startfight% + 50 THEN COLOR 15 IF rez% > 7 THEN LOCATE 3: PRINT name$(1) LOCATE 3, 40: PRINT "VS." LOCATE 3, 70: PRINT name$(2) ELSE LOCATE 4: PRINT name$(1) LOCATE 4, 20: PRINT "VS." LOCATE 4, 30: PRINT name$(2) END IF END IF 'refreash rate LINE (15, 0)-(30, 0), 7, , &H1010 LINE (20, 0)-(25, 0), 7, , &H101 IF refreash < 15 OR refreash > 30 THEN c% = 12 ELSE c% = 9 LINE (refreash - .5, 0)-(refreash + .5, 0), c% PSET (refreash, 0), 15 '--------------------------------------+ hs1% = 45 - (hpslide%(1) / 4.66) ks1% = 45 - (koslide%(1) / 2.33) h1% = 45 - (health%(1) / 4.66) k1 = 45 - (ko(1) / 2.33) hs2% = 55 + (hpslide%(2) / 4.66) ks2% = 55 + (koslide%(2) / 2.33) h2% = 55 + (health%(2) / 4.66) k2 = 55 + (ko(2) / 2.33) '--------------------------------------- Damage Bars 'Health IF h1% < 45 THEN LINE (hs1%, 2.5)-(h1%, 3.3), flash3%, BF LINE (h1%, 2)-(45, 4), hc%(1), BF END IF IF h2% > 55 THEN LINE (h2%, 2.5)-(hs2%, 3.3), flash3%, BF LINE (55, 2)-(h2%, 4), hc%(2), BF END IF 'KO IF k1 < 45 THEN LINE (ks1%, 5.5)-(k1, 6.3), flash3%, BF LINE (k1, 5)-(45, 7), kc%(1), BF END IF IF k2 > 55 THEN LINE (ks2%, 5.5)-(k2, 6.3), flash3%, BF LINE (55, 5)-(k2, 7), kc%(2), BF END IF '--------------------------------------- Eye Candy IF hudetail% = 1 THEN LINE (45, 1)-(55, 8), 15 LINE (45, 8)-(55, 1), 15 LINE (0, 1.2)-(44, 1.2), 8 LINE (0, 8.3)-(44, 8.3), 8 LINE (56, 1.2)-(100, 1.2), 8 LINE (56, 8.3)-(100, 8.3), 8 LINE (0, 1)-(45, 1), 7 LINE (0, 8)-(45, 8), 7 LINE (55, 1)-(100, 1), 7 LINE (55, 8)-(100, 8), 7 LINE (0, .7)-(44, .7), 15 LINE (0, 7.7)-(44, 7.7), 15 LINE (56, .7)-(100, .7), 15 LINE (56, 7.7)-(100, 7.7), 15 END IF 'Rage IF hudetail% = 1 THEN LINE (45 - (rage(1) / 2.5), 97.5)-(55 + (rage(2) / 2.5), 97.5), flash1% IF rage(1) = 100 THEN LINE (5, 96.8)-(45, 96.8), flash2% IF rage(2) = 100 THEN LINE (55, 96.8)-(95, 96.8), flash2% LINE (45, 96.5)-(55, 96.5), 8 LINE (45, 97.5)-(55, 97.5), 7 LINE (45, 97.8)-(55, 97.8), 8 'Health Overlays LINE (44 - (maxhp%(1) / 4.66), 2)-(45, 4), 7, B LINE (55, 2)-(56 + (maxhp%(2) / 4.66), 4), 7, B 'KO Overlays LINE (2, 5)-(45, 7), 7, B LINE (55, 5)-(98, 7), 7, B END IF 'Rage Meter LINE (45, 96.8)-(55, 96.8), 7 LINE (45 - (rage(1) / 2.5), 97)-(55 + (rage(2) / 2.5), 97), 15 'Special Boxes IF Special%(1) = 1 THEN LINE (0, 96)-(5, 98), flash1%, BF LINE (0, 96)-(5, 98), 7, B IF Special%(2) = 1 THEN LINE (95, 96)-(100, 98), flash1%, BF LINE (95, 96)-(100, 98), 7, B 'Win Icons IF win%(1) > 0 THEN LINE (47, 3.5)-(47, 5.5), 12 LINE (46.3, 5)-(47.5, 5), 12 END IF IF win%(2) > 0 THEN LINE (52.7, 3.5)-(52.7, 5.5), 12 LINE (52.1, 5)-(53.3, 5), 12 END IF 'Display Ringout IF ringoutt% > 0 THEN ringoutt% = ringoutt% - 1: ringoutext (ringoutp%) window3d fault$ = "" '-------------------------------------------------------------------- End HUD LOOP '+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+ End Loop '================================================================= Error Code 8 DO UNTIL INKEY$ = "" wee$ = INKEY$ LOOP IF fault$ <> "file" AND fault$ <> "ps" AND fault$ <> "save1" AND fault$ <> "nokey" THEN CLOSE #1 SCREEN 9, , 0, 0 CLS COLOR 15 SOUND 1000, 1: SOUND 500, 1 LOCATE 1, 1: PRINT "SLASH ERROR: " PRINT " " PRINT " " PRINT " " PRINT "Esc - Terminate Program" PRINT "D - Delete SLASH.DAT (If the File is Corrupt it May Cause Errors)" PRINT "Any Other Key will Attempt to Continue" LOCATE 1, 14 END IF SELECT CASE fault$ '---------------------------------------------- CASE IS = "load" PRINT "File " + path$ + "\SLASH.DAT is Bad or Missing." PRINT "Slash Will Attempt to Recover Using Default Settings." PRINT "By Saving the Current Settings a New SLASH.DAT May Be Created." setback% = 1 errorkey RESUME NEXT '---------------------------------------------- CASE IS = "save1" CHDIR "\" MKDIR path$ CLOSE #1 setback% = 1 RESUME NEXT '---------------------------------------------- CASE IS = "save2" PRINT "Could Not Write File " + path$ + "\SLASH.DAT" PRINT "Slash Will Attempt to Recover Without Saving." mode% = 0 setback% = 2 errorkey RESUME NEXT '---------------------------------------------- CASE IS = "mud" PRINT "There Was a Problem While Displaying The Opening Mud." PRINT "Slash Will Attempt to Bypass It." setback% = 1 errorkey RESUME NEXT '---------------------------------------------- CASE IS = "init" PRINT "Could Not Initalize." PRINT "There is Probably a Memory or Video Problem." PRINT "Slash Can Not Recover From This Error." SLEEP SYSTEM RESUME NEXT '---------------------------------------------- CASE IS = "pflip" PRINT "Clearing or Flipping Video" errorkey RESUME NEXT '---------------------------------------------- CASE IS = "hud" PRINT "There Was a Problem While Displaying The HUD." PRINT "Slash Will Attempt to Continue Anyway" errorkey RESUME NEXT '---------------------------------------------- CASE IS = "file" setback% = 1 RESUME NEXT '---------------------------------------------- CASE IS = "ps" COLOR 15 LOCATE 21 PRINT "PS ERROR" RESUME NEXT '---------------------------------------------- CASE IS = "ss" PRINT "Problem With Sound Blaster Sound" PRINT "Slash Will Attempt to Continue With Sound Disabled." sbsound% = 0 errorkey RESUME NEXT '---------------------------------------------- CASE IS = "particles" PRINT "Problem Spawning/Rendering Particle(s)" PRINT "Slash Will Attempt to Continue With The Particle Engine Disabled." setback% = 1 errorkey RESUME NEXT '---------------------------------------------- CASE IS = "pagetest" PRINT "Current Screen Mode Does Not Not Support Page " + wee$ PRINT "Slash Will Switch Back to Page 0 and Continue Page Test Mode." errorkey SCREEN , 0, 0 RESUME NEXT '---------------------------------------------- CASE IS = "dim" PRINT "Problem Allocating Variables" PRINT "You Have Probably Run Out of Conventional Memory" PRINT "Slash Can Not Recover From This Error." SLEEP RESUME NEXT '---------------------------------------------- CASE IS = "nokey" RESUME NEXT '---------------------------------------------- END SELECT '---------------------------------------------- PRINT "Unknown" errorkey zoom = zoom + .01 zoomd = 0 RESUME NEXT SUB AI (pc%) IF pc% = 2 THEN po% = 1 ELSE po% = 2 AImoved% = 0 '--------------------------------------------- Move Away From Downed Opponent IF position%(po%) > 7 AND position%(po%) < 12 AND dist% < 25 AND pticker%(pc%) > 5 AND pticker%(po%) > 15 THEN IF canjump%(pc%) = 1 THEN AImoved% = 1 IF buttx(pc%) > 0 THEN jump (pc%), (1) ELSE jump (pc%), (3) END IF END IF '------------------------------------------------------------ Maintain Action wee = 0 IF AImoved% = 0 THEN IF pticker%(pc%) > 75 OR position%(po%) = 81 OR dist% < 2 THEN wee = 1 END IF IF wee = 1 THEN IF RND < .5 THEN AIgetclose pc%, po% ELSE AIattack pc%, po% '-------------------------------------------------------- Normal AI Functions 'Determine if in air and deside move accordingly IF ABS(buttv(pc%)) > .5 THEN AIattack pc%, po% ELSE 'Defend IF AImoved% = 0 AND ko(pc%) + health%(pc%) < RND * dif% * 10 THEN AIdefend pc%, po% ELSE 'Attack wee = 0 IF buttx(pc%) < buttx(po%) AND d%(pc%) = -1 THEN wee = 1 IF buttx(pc%) > buttx(po%) AND d%(pc%) = 1 THEN wee = 1 IF wee = 0 AND AImoved% = 0 AND dif% > RND * 25 THEN AIattack pc%, po% END IF 'Get Close IF AImoved% = 0 AND ABS(buttx(po%)) < ring% - 50 AND canjump%(pc%) = 1 AND dif% > RND * 30 AND dist% > 18 THEN AIgetclose pc%, po% '----------------------------------------------------------- Avoid Projectile IF dif% > RND * 25 THEN IF pc% = 2 THEN IF dif% > RND * 25 THEN IF projectile%(1) > 0 AND position%(2) = 1 AND projectilex(1) > buttx(2) - 75 AND projectilex(1) < buttx(2) + 75 THEN IF RND < .5 THEN jump 2, 2 ELSE IF RND < .5 THEN position%(2) = 99 ELSE position%(2) = 12 END IF END IF END IF ELSE IF projectile%(4) > 0 AND position%(1) = 1 AND projectilex(4) > buttx(1) - 75 AND projectilex(4) < buttx(1) + 75 THEN IF RND < .5 THEN jump 1, 2 ELSE IF RND < .5 THEN position%(1) = 99 ELSE position%(1) = 12 END IF END IF END IF END IF END IF END SUB SUB AIattack (pc%, po%) IF rage(pc%) >= 100 THEN 'Super AIsuper pc%, po% ELSE 'Special IF ko(pc%) > 25 AND dif% > RND * 30 AND pticker%(pc%) > 20 THEN AImoved% = 1: AIspecial pc%, po% END IF 'Normal Attack IF AImoved% = 0 AND butty(po%) > butty(pc%) - 15 THEN IF dist% < 18 THEN 'Attack with Normal Move AImoved% = 1 IF position%(pc%) = 12 AND RND < .5 THEN IF RND < .5 AND dist% < 10 THEN position%(pc%) = 13 ELSE IF head%(pc%) <> 666 THEN position%(pc%) = 6 ELSE IF pticker%(pc%) > 15 THEN SELECT CASE INT(RND * 5) CASE 0: position%(pc%) = 12 CASE 1: position%(pc%) = 2 CASE 2: position%(pc%) = 3 CASE 3: IF stage% <> 15 THEN position%(pc%) = 5 CASE 4: IF stage% <> 15 THEN position%(pc%) = 6 END SELECT END IF END IF END IF END IF END SUB SUB AIdefend (pc%, po%) 'Jump or Block if close IF dist% < 25 THEN IF attackok%(pc%) = 1 AND RND < .5 AND pticker%(pc%) > 10 THEN position%(pc%) = 99: AImoved% = 1 ELSE IF ABS(buttx(pc%)) < ring% - 50 THEN jump (pc%), (INT(RND * 3) + 1): AImoved% = 1 END IF END IF END SUB SUB AIfighter (pc%) 'Determine which moves to use for short/long range etc. 'Hand Attacks SELECT CASE hands%(pc%) CASE 1 AIhs%(pc%) = 35 AIhm%(pc%) = 35 AIhl%(pc%) = 30 AIhh%(pc%) = 12 CASE 2 IF RND < .5 THEN AIhs%(pc%) = 31 ELSE AIhs%(pc%) = 36 AIhm%(pc%) = 1 AIhl%(pc%) = 1 AIhh%(pc%) = 12 CASE 3 IF RND < .5 THEN AIhs%(pc%) = 32 ELSE AIhs%(pc%) = 37 AIhm%(pc%) = 1 AIhl%(pc%) = 1 AIhh%(pc%) = 37 CASE 4 AIhs%(pc%) = 38 AIhm%(pc%) = 33 AIhl%(pc%) = 33 AIhh%(pc%) = 38 CASE 5 AIhs%(pc%) = 39 AIhm%(pc%) = 34 AIhl%(pc%) = 34 AIhh%(pc%) = 12 END SELECT 'Foot Attacks SELECT CASE feet%(pc%) CASE 1 AIfs%(pc%) = 45 AIfm%(pc%) = 40 AIfl%(pc%) = 1 AIfh%(pc%) = 40 CASE 2 IF RND < .5 THEN AIfs%(pc%) = 41 ELSE AIfs%(pc%) = 46 AIfm%(pc%) = 41 AIfl%(pc%) = 1 AIfh%(pc%) = 12 CASE 3 IF RND < .5 THEN AIfs%(pc%) = 42 ELSE AIfs%(pc%) = 47 AIfm%(pc%) = 42 AIfl%(pc%) = 1 AIfh%(pc%) = 47 CASE 4 AIfs%(pc%) = 48 AIfm%(pc%) = 43 AIfl%(pc%) = 48 AIfh%(pc%) = 43 CASE 5 IF RND < .5 THEN AIfs%(pc%) = 44 ELSE AIfs%(pc%) = 49 AIfm%(pc%) = 44 AIfl%(pc%) = 1 AIfh%(pc%) = 49 END SELECT IF stage% = 15 THEN AIhs%(pc%) = 35 AIhm%(pc%) = 35 AIhl%(pc%) = 30 AIhh%(pc%) = 13 AIfs%(pc%) = 3 AIfm%(pc%) = 30 AIfl%(pc%) = 30 AIfh%(pc%) = 2 END IF END SUB SUB AIgetclose (pc%, po%) IF RND > .1 THEN 'Walk IF canjump%(pc%) = 1 THEN AImoved% = 1 IF buttx(po%) < buttx(pc%) THEN butth(pc%) = butth(pc%) - .5 ELSE butth(pc%) = butth(pc%) + .5 END IF ELSE 'Jump IF dist% > 50 AND canjump%(pc%) = 1 THEN AImoved% = 1 IF buttx(po%) < buttx(pc%) THEN jump (pc%), (1) ELSE jump (pc%), (3) END IF END IF END SUB SUB AIspecial (pc%, po%) IF RND < .5 THEN IF butty(po%) > butty(pc%) - 15 THEN SELECT CASE dist% CASE IS < 20: position%(pc%) = AIhs%(pc%) CASE IS >= 20 <= 75: position%(pc%) = AIhm%(pc%) CASE IS > 75: position%(pc%) = AIhl%(pc%) END SELECT ELSE IF dist% < 20 THEN position%(pc%) = AIhh%(pc%) END IF ELSE IF butty(po%) > butty(pc%) - 15 THEN SELECT CASE dist% CASE IS < 25: position%(pc%) = AIfs%(pc%) CASE IS >= 25 <= 75: position%(pc%) = AIfm%(pc%) CASE IS > 75: position%(pc%) = AIfl%(pc%) END SELECT ELSE IF butty(po%) < heady(pc% + 2) AND dist% < 20 THEN position%(pc%) = AIfh%(pc%) END IF END IF END SUB SUB AIsuper (pc%, po%) SELECT CASE body%(pc%) CASE 1 IF canjump%(pc%) = 1 THEN IF dist% > 75 THEN position%(pc%) = 81: AImoved% = 1 IF position%(po%) >= 8 AND position%(po%) <= 11 THEN position%(pc%) = 81: AImoved% = 1 END IF CASE 2 IF dist% > 75 AND position%(po%) < 8 THEN position%(pc%) = 82: AImoved% = 1 CASE 3 IF dist% < 50 AND position%(po%) < 8 THEN position%(pc%) = 83: AImoved% = 1 CASE 4 IF health%(pc%) < 100 THEN position%(pc%) = 84: AImoved% = 1 CASE 5 IF dist% < 100 THEN position%(pc%) = 85: AImoved% = 1 CASE 6 IF dist% < 125 AND canjump%(pc%) = 1 THEN position%(pc%) = 86: AImoved% = 1 CASE 7 IF dist% < 25 AND canjump%(pc%) = 1 THEN position%(pc%) = 87: AImoved% = 1 CASE 8 IF dist% < 20 AND canjump%(pc%) = 1 THEN position%(pc%) = 88: AImoved% = 1 CASE 666 IF dist% < 20 AND canjump%(pc%) = 1 THEN position%(pc%) = 36: AImoved% = 1 END SELECT END SUB SUB bigwindow SCREEN , , 0, 0: COLOR 12, 0 LOCATE 1, 29: PRINT " SFB2: Vector Warriors " FOR wee = 0 TO 248 STEP 2 LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), INT((RND * 2) + 7) NEXT wee LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), 0, BF LINE (midx% - wee, midy% - 200)-(midy% + wee, midy% + 200), 7, B COLOR 4 IF rez% = 7 THEN LOCATE 22, 35 ELSE LOCATE 22, 75 PRINT ver$ wee$ = "" END SUB SUB blur (l%) IF blurr% = 0 THEN blurr% = l% csave% = cfreq% END IF END SUB SUB camdefaults panx = 0 panh = 0 pany = 0 panv = 0 zoom = .1 zoomd = 0 midx% = 250 midy% = 250 winx = 250 winy = 250 winxwiny END SUB SUB camtracking SELECT CASE camode% CASE 0 EXIT SUB CASE 1 trackx% = (neckx(3) + neckx(4)) / 2 tracky% = ((necky(3) + necky(4)) / 2) - 10 CASE 2 trackx% = (buttx(1) + neckx(3)) / 2 tracky% = ((butty(1) + necky(3)) / 2) CASE 3 trackx% = (buttx(2) + neckx(4)) / 2 tracky% = ((butty(2) + necky(4)) / 2) END SELECT '---------------------------------------------------------------------------- IF panx > trackx% + 30 THEN panh = panh - .5 IF panx < trackx% - 30 THEN panh = panh + .5 IF pany > tracky% + 20 THEN panv = panv - 1 IF pany < tracky% - 20 THEN panv = panv + 1 IF ABS(panh) > 10 THEN panh = panh / 1.1 IF ABS(panv) > 10 THEN panv = panv / 1.1 IF panx > trackx% - 25 AND panx < trackx% + 25 THEN panh = panh / 1.1 IF pany > tracky% - 25 AND pany < tracky% + 25 THEN panv = panv / 1.5 'Zoom Control IF camode% = 1 THEN IF buttx(1) < buttx(2) THEN x = (buttx(2) - buttx(1)) / 1000 ELSE x = (buttx(1) - buttx(2)) / 1000 IF butty(1) < butty(2) THEN y = (butty(2) - butty(1)) / 1000 ELSE y = (butty(1) - butty(2)) / 1000 F = (x + y) / 2 IF zoom < zoomt + F - .001 THEN zoom = zoom + .001 IF zoom > zoomt + F + .001 THEN zoom = zoom - .001 IF zoom < zoomt + F - .1 THEN zoomd = zoomd + .001 IF zoom > zoomt + F + .1 THEN zoomd = zoomd - .001 IF zoomd < -.005 THEN zoomd = -.005 END IF '------------------ IF zoom < .0000001 THEN zoom = .0000001 END SUB SUB cbigwindow SCREEN , 0, 0 FOR wee = 0 TO 248 STEP 15 LINE (midx% - 248 + wee, midy% - 200)-(midy% + 248 - wee, midy% + 200), INT((RND * 2) + 7) LINE (midx% - 248, midy% - 200)-(midy% + 248, midy% + 200), 15, B NEXT wee wee$ = "" END SUB SUB clearscreen 'Blur IF blurr% > 0 THEN blurr% = blurr% - 1 IF blurr% = 0 THEN cfreq% = csave% ELSE cfreq% = 1 END IF IF ctime% > cfreq% THEN ctime% = 0 SELECT CASE cmethod% CASE IS = 1 LINE (xx1, yy1)-(xx2, yy2), 0, BF CASE IS = 2 CLS CASE IS = 3 window2d hfade% = hfade% + 5: IF hfade% = 15 THEN hfade% = 0 FOR wee = hfade% TO 95 STEP 15 LINE (0, wee)-(100, wee + 5), 0, BF NEXT wee window3d CASE IS = 4 IF clsb% = 5 THEN clsb% = 0 clsblock (clsb%) clsb% = clsb% + 1 END SELECT ELSE ctime% = ctime% + 1 END IF END SUB SUB clsblock (n) window2d SELECT CASE n CASE IS = 1 FOR y = 0 TO 90 STEP 10 FOR x = 0 TO 90 STEP 10 LINE (x, y)-(x + 5, y + 5), 0, BF NEXT x NEXT y CASE IS = 2 FOR y = 5 TO 95 STEP 10 FOR x = 5 TO 95 STEP 10 LINE (x, y)-(x + 5, y + 5), 0, BF NEXT x NEXT y CASE IS = 3 FOR y = 0 TO 90 STEP 10 FOR x = 5 TO 95 STEP 10 LINE (x, y)-(x + 5, y + 5), 0, BF NEXT x NEXT y CASE IS = 4 FOR y = 5 TO 95 STEP 10 FOR x = 0 TO 90 STEP 10 LINE (x, y)-(x + 5, y + 5), 0, BF NEXT x NEXT y END SELECT window3d END SUB SUB Conclusion '------------------------------------------------------------ Determine Flash IF victory% = 0 THEN victory% = 1 IF health%(1) <= 0 OR health%(2) <= 0 THEN soundticker% = 0: sbfx 14 COLOR , 12 flicker = TIMER: DO UNTIL TIMER - flicker > .1: LOOP COLOR , 0 END IF IF ko(1) <= 0 OR ko(2) <= 0 THEN soundticker% = 0: sbfx 15 COLOR , 9 flicker = TIMER: DO UNTIL TIMER - flicker > .1: LOOP COLOR , 0 END IF IF frameskip% < 3 THEN tpause% = 2 END IF '------------------------------- Determine When to Figure Round / Match Info. IF position%(1) = 8 AND pticker%(1) >= 75 THEN victory% = 2 IF position%(2) = 8 AND pticker%(2) >= 75 THEN victory% = 2 IF position%(1) = 10 AND pticker%(1) >= 75 THEN victory% = 2 IF position%(2) = 10 AND pticker%(2) >= 75 THEN victory% = 2 IF victory% = 2 THEN victory% = 0 '------------------------------------------------------ Determine Round Info. SCREEN , , 0, 0 LOCATE 5 COLOR 9 IF ko(1) <= 0 AND health%(1) > 0 THEN PRINT name$(1) + " - KO": win%(2) = win%(2) + 1 IF ko(2) <= 0 AND health%(2) > 0 THEN PRINT name$(2) + " - KO": win%(1) = win%(1) + 1 IF ko(1) <= 0 AND ko(2) <= 0 THEN PRINT "Double KO" COLOR 12 IF health%(1) <= 0 THEN PRINT name$(1) + " - Dead": win%(2) = 2 IF health%(2) <= 0 THEN PRINT name$(2) + " - Dead": win%(1) = 2 '------------------------------------------------------ Determine Match Info. COLOR 15 IF win%(1) > 1 AND win%(2) > 1 THEN PRINT "Tie Match": win%(1) = 1: win%(2) = 1 IF health%(1) <= 0 AND health%(2) <= 0 THEN IF ringoutp% <> 1 AND ringoutp% <> 3 THEN PRINT "Resurrecting Players To Continue" decap 3 health%(1) = 100 health%(2) = 100 particle (headx(3)), (heady(3)), (fighterz(1)), 5, 10 particle (headx(4)), (heady(4)), (fighterz(2)), 5, 10 ELSE PRINT name$(2) + " Takes Win" newmatch END IF END IF ELSE IF win%(1) > 1 OR win%(2) > 1 THEN IF win%(1) > 1 AND win%(2) < 2 THEN PRINT name$(1) + " Wins the Match": stage% = stage% + 1: setfightercpu IF win%(2) > 1 AND win%(1) < 2 THEN PRINT name$(2) + " Wins the Match": IF stage% > stages% THEN setfightercpu newmatch END IF END IF '---------------------------------------------------------------------------- wee = TIMER 34 IF TIMER - wee < 3 THEN 34 setko (1): setko (2) END IF END SUB SUB csmallwindow SCREEN , 0, 0 FOR wee = 0 TO 248 STEP 3 LINE (midx% - 248 + wee, midy% - 75)-(midy% + 248 - wee, midy% + 75), INT((RND * 2) + 7) LINE (midx% - 248, midy% - 75)-(midy% + 248, midy% + 75), 15, B NEXT wee wee$ = "" END SUB SUB decap (n%) IF n% = 3 THEN headless%(1) = 0: headless%(2) = 0 ELSE IF headless%(n%) = 0 THEN bgcolor% = 15 camode% = n% + 1 zoomd = zoomd + .001 headless%(n%) = 1 hx(n%) = headx(n% + 2) hy(n%) = heady(n% + 2) hh(n%) = (RND - .5) * 2 hv(n%) = -12 END IF END IF END SUB SUB decay FOR wee = 1 TO particles% IF p%(wee) > 0 THEN p%(wee) = p%(wee) - 1 IF p%(wee) = 15 THEN pc1%(wee) = pc2%(wee) IF p%(wee) = 5 THEN pc1%(wee) = pc3%(wee) IF pk%(wee) = 1 AND py(wee) > floor1 - pv(wee) AND ABS(px(wee)) < ring% - 8 THEN IF py(wee) < floor1 + 15 AND RND < .4 THEN smear (px(wee) + ((RND - .5) * 8)), (floor1), (pz(wee) + (RND - .5)), (pc1%(wee)) p%(wee) = 0 END IF IF pk%(wee) = 2 AND py(wee) > floor2 - pv(wee) THEN p%(wee) = 0 END IF NEXT wee FOR wee = 1 TO 10 IF smearl%(wee) > 0 THEN smearl%(wee) = smearl%(wee) + 1 IF smearl%(wee) = 60 AND smearc%(wee) = 12 THEN smearc%(wee) = 4 END IF NEXT wee 'Razer Arms FOR wee = 1 TO 2 IF razers%(wee) > 0 THEN razers%(wee) = razers%(wee) - 1 IF razers%(wee) = 1 THEN pc2 = wee + 2 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(wee) + .2), 15, 5 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(wee) - .2), 15, 5 END IF END IF NEXT wee END SUB DEFINT A-Z FUNCTION DetectCard% 'Returns -1 (true) if detected and 0 (false) if not. CALL SBWrite(&H4, &H60) CALL SBWrite(&H4, &H80) B = INP(&H388) CALL SBWrite(&H2, &HFF) CALL SBWrite(&H4, &H21) FOR x = 0 TO 130 a = INP(&H388) NEXT x c = INP(&H388) CALL SBWrite(&H4, &H60) CALL SBWrite(&H4, &H80) SUCCESS = 0 IF (B AND &HE0) = &H0 THEN IF (c AND &HE0) = &HC0 THEN SUCCESS = -1 END IF END IF DetectCard% = SUCCESS END FUNCTION DEFSNG A-Z SUB errorkey wee = 2 wee$ = "" LOCATE 21, 1 PRINT "E-mail lbt1st@cyberdude.com if problem persist. SFB2 Version " + ver$ PRINT "[ ] - System may be halted if inanimate" 24 wee$ = UCASE$(INKEY$) wee = wee + .005 IF INT(wee) = 20 THEN wee = 2: LOCATE 22, 19: PRINT " " LOCATE 22, INT(wee): PRINT "*" IF INT(wee) > 2 THEN LOCATE 22, INT(wee) - 1: PRINT " " IF wee$ = "" THEN 24 IF wee$ = CHR$(27) THEN SYSTEM IF UCASE$(wee$) = "D" THEN SHELL "del slash.dat" SHELL "echo Slash Attempted to Delete SLASH.DAT" SHELL "echo You May Now Try to Restart the Program." SYSTEM END IF END SUB SUB fades IF bgcolor% <> 0 THEN SELECT CASE bgcolor% CASE 19 COLOR , 15 bgcolor% = 9 CASE 15 COLOR , 15 bgcolor% = 12 CASE 12 COLOR , 12 bgcolor% = 4 CASE 9 COLOR , 9 bgcolor% = 1 CASE 4 COLOR , 4 bgcolor% = -1 CASE 1 COLOR , 1 bgcolor% = -1 CASE -1 COLOR , 0 bgcolor% = 0 END SELECT END IF END SUB SUB fall (n) IF d%(n) = 1 AND butth(n) < 0 THEN position%(n) = 10 IF d%(n) = -1 AND butth(n) < 0 THEN position%(n) = 8 IF d%(n) = 1 AND butth(n) > 0 THEN position%(n) = 8 IF d%(n) = -1 AND butth(n) > 0 THEN position%(n) = 10 IF position%(n) < 8 OR position%(n) > 11 THEN position%(n) = 10 END SUB SUB fightercompress (n%) headx(n%) = 0 neckx(n%) = 0 elbow1x(n%) = 0 elbow2x(n%) = 0 hand1x(n%) = 0 hand2x(n%) = 0 nee1x(n%) = 0 nee2x(n%) = 0 foot1x(n%) = 0 foot2x(n%) = 0 heady(n%) = 0 necky(n%) = 0 elbow1y(n%) = 0 elbow2y(n%) = 0 hand1y(n%) = 0 hand2y(n%) = 0 nee1y(n%) = 0 nee2y(n%) = 0 foot1y(n%) = 0 foot2y(n%) = 0 END SUB SUB fighterdirect '------------------------------------------------------------- Flip Direction FOR wee = 1 TO 2 IF wee = 1 AND position%(1) = 1 AND pticker%(1) > 20 AND canjump%(1) = 1 THEN IF buttx(1) > buttx(2) THEN d%(wee) = -1 ELSE d%(wee) = 1 END IF IF wee = 2 AND position%(2) = 1 AND pticker%(2) > 20 AND canjump%(2) = 1 THEN IF buttx(1) < buttx(2) THEN d%(wee) = -1 ELSE d%(wee) = 1 END IF NEXT wee END SUB SUB fighterender FOR wee = 1 TO 2 wee2 = wee + 2 fm1 = fighterz(wee) - .1 fp1 = fighterz(wee) + .1 IF position%(wee) = 0 THEN 36 '----------------------------------------------- High Detail Fighter Graphics IF fighterdetail% = 1 THEN midbodx = buttx(wee) + ((neckx(wee2) - buttx(wee)) / 2) midbody = necky(wee2) + ((butty(wee) - necky(wee2)) / 2) '---------------------------------------------------------------- Render Hair 'P1 IF position%(1) > 0 AND hairl%(1) > 0 AND wee = 1 THEN FOR n% = 1 TO 4 SELECT CASE hairt%(1) CASE 1: psline (hairx(n%)), (hairy(n%)), (fighterz(1)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(1)), (hairc%(1)), 0 CASE 2: pscline (hairx(n%)), (hairy(n%)), (fighterz(1)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(1)), .2, (hairc%(1)) END SELECT NEXT n% END IF 'P2 IF position%(2) > 0 AND hairl%(2) > 0 AND wee = 2 THEN FOR n% = 6 TO 9 SELECT CASE hairt%(2) CASE 1: psline (hairx(n%)), (hairy(n%)), (fighterz(2)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(2)), (hairc%(2)), 0 CASE 2: pscline (hairx(n%)), (hairy(n%)), (fighterz(2)), (hairx(n% + 1)), (hairy(n% + 1)), (fighterz(2)), .2, (hairc%(2)) END SELECT NEXT n% END IF '---------------------------------------------------------------- Razer Arm-1 IF razers%(wee) > 0 THEN IF razers%(wee) > 50 THEN c% = flash3% ELSE c% = 4 psline (elbow1x(wee2) + (hand1x(wee) / 2) * d%(wee)), (elbow1y(wee2) + (hand1y(wee) / 2)), (fp1 + .1), (elbow1x(wee2) + (hand1x(wee) * 2) * d%(wee)), (elbow1y(wee2) + (hand1y(wee) * 2)), (fp1 + .1), c%, 0 END IF '---------------------------------------------------------------------- Heads IF headless%(wee) = 1 THEN headx(wee2) = hx(wee): heady(wee2) = hy(wee) SELECT CASE head%(wee) CASE 1 pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee) CASE 2 psline (headx(wee2) + 1 * d%(wee)), (heady(wee2) - 1), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) + 1 * d%(wee)), (heady(wee2) - 1), (fighterz(wee)), (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 3), (fighterz(wee)), (headx(wee2) - 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 CASE 3 psline (headx(wee2) - 1 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) + 1), (fighterz(wee)), (headx(wee2) - 1 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), headc%(wee), 0 CASE 4 pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee) psline (headx(wee2) - 3 * d%(wee)), (heady(wee2)), (fighterz(wee)), (headx(wee2)), (heady(wee2)), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2)), (heady(wee2)), (fighterz(wee)), (headx(wee2) + 2 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 CASE 5 psline (headx(wee2)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 3 * d%(wee)), (heady(wee2)), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 psline (headx(wee2) - 3 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), headc%(wee), 0 CASE 666 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 1), (fighterz(wee) + .05), (headx(wee2) - 3 * d%(wee)), (heady(wee2) - 3), (fighterz(wee) + .3), 7, 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fp1), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 2), (fm1), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0 psline (headx(wee2) - 3 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), (headx(wee2) + 1 * d%(wee)), (heady(wee2) + 2), (fighterz(wee)), 12, 0 pscircle (headx(wee2) - 2.5 * d%(wee)), (heady(wee2) + .1), (fighterz(wee)), 1.5, 12 psline (headx(wee2) - 2 * d%(wee)), (heady(wee2) - 1), (fighterz(wee) - .05), (headx(wee2) - 3 * d%(wee)), (heady(wee2) - 3), (fighterz(wee) - .3), 15, 0 CASE 1998 pslightning (headx(wee2) + (RND - .5) * 3), (heady(wee2) + (RND - .5) * 3), (fighterz(wee)), (headx(wee2) + (RND - .5) * 3), (heady(wee2) + (RND - .5) * 3), (fighterz(wee)), 5, flash2% CASE 2000 pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), RND, headc%(wee) pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee) END SELECT '---------------------------------------------------------------------- Arm-1 SELECT CASE arms%(wee) CASE 1 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 CASE 2 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 CASE 3 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (midbodx), (necky(wee2) + 1), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), armsc%(wee), 0 psline (elbow1x(wee2)), (elbow1y(wee2) + 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + .5), (fp1), armsc%(wee), 0 CASE 4 psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2) - .3 * d%(wee)), (elbow1y(wee2) - .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2) + .3 * d%(wee)), (elbow1y(wee2) + .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 pscircle (neckx(wee2) + elbow1x(wee) / 2 * d%(wee)), (necky(wee2) + elbow1y(wee) / 2), (fp1), .8, armsc%(wee) pscircle (elbow1x(wee2) + hand1x(wee) / 2 * d%(wee)), (elbow1y(wee2) + hand1y(wee) / 2), (fp1), .5, armsc%(wee) CASE 5 psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow1x(wee2) + .5 * d%(wee)), (elbow1y(wee2) + .5), (fp1), armsc%(wee), 0 psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow1x(wee2) - .5 * d%(wee)), (elbow1y(wee2) - .5), (fp1), armsc%(wee), 0 psline (elbow1x(wee2) - .3 * d%(wee)), (elbow1y(wee2) - .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2) + .3 * d%(wee)), (elbow1y(wee2) + .5), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow1x(wee2) - .7), (elbow1y(wee2) - .7), (fp1), (elbow1x(wee2) + .7), (elbow1y(wee2) + .7), (fp1), armsc%(wee), 1 CASE 666 psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) + 2), (fp1), (elbow1x(wee2)), (elbow1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (elbow1x(wee2) - .8 * d%(wee)), (elbow1y(wee2) - .8), (fighterz(wee) + .2), (hand1x(wee2)), (hand1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (elbow1x(wee2)), (elbow1y(wee2) + .8), (fighterz(wee) + .2), (hand1x(wee2)), (hand1y(wee2)), (fighterz(wee) + .2), 4, 0 CASE 1998 pslightning (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), 1, flash2% pslightning (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), 1, flash2% CASE 2000 pscline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), .8, armsc%(wee) pscline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), .5, armsc%(wee) END SELECT '--------------------------------------------------------------------- Hand-1 SELECT CASE hands%(wee) CASE 1 psline (hand1x(wee2) - .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) + .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0 psline (hand1x(wee2) + .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) - .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0 CASE 2 psline (hand1x(wee2) - .6), (hand1y(wee2) - .6), (fp1), (hand1x(wee2) + .6), (hand1y(wee2) + .6), (fp1), handsc%(wee), 1 CASE 3 IF position%(wee) = 13 OR position%(wee) = 37 OR position%(wee) = 88 THEN psline (hand1x(wee2) - .5), (hand1y(wee2) - 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + 2), (fp1), handsc%(wee), 0 psline (hand1x(wee2) + .5), (hand1y(wee2) - 1), (fp1), (hand1x(wee2)), (hand1y(wee2) + 2), (fp1), handsc%(wee), 0 ELSE psline (hand1x(wee2) + 2 * d%(wee)), (hand1y(wee2)), (fp1), (hand1x(wee2) - .5 * d%(wee)), (hand1y(wee2) - .6), (fp1), handsc%(wee), 0 psline (hand1x(wee2) + 2 * d%(wee)), (hand1y(wee2)), (fp1), (hand1x(wee2) - .5 * d%(wee)), (hand1y(wee2) + .6), (fp1), handsc%(wee), 0 END IF CASE 4, 2000 pscircle (hand1x(wee2)), (hand1y(wee2)), (fp1), .5, handsc%(wee) CASE 5 psline (hand1x(wee2)), (hand1y(wee2) - .8), (fp1), (hand1x(wee2) - .8), (hand1y(wee2)), (fp1), handsc%(wee), 0 psline (hand1x(wee2)), (hand1y(wee2) + .8), (fp1), (hand1x(wee2) - .8), (hand1y(wee2)), (fp1), handsc%(wee), 0 psline (hand1x(wee2)), (hand1y(wee2) - .8), (fp1), (hand1x(wee2) + .8), (hand1y(wee2)), (fp1), handsc%(wee), 0 psline (hand1x(wee2)), (hand1y(wee2) + .8), (fp1), (hand1x(wee2) + .8), (hand1y(wee2)), (fp1), handsc%(wee), 0 CASE 666 psline (hand1x(wee2) - 1), (hand1y(wee2) - 1), (fp1), (hand1x(wee2) + 1), (hand1y(wee2) + 1), (fp1), 6, 1 END SELECT '---------------------------------------------------------------------- Bodys SELECT CASE body%(wee) CASE 1 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee)), (butty(wee) + 1), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), bodyc%(wee), 0 CASE 2 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 CASE 3 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2) + 2 * d%(wee)), (necky(wee2)), (fighterz(wee)), (midbodx - 1 * d%(wee)), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2) - 1 * d%(wee)), (necky(wee2)), (fighterz(wee)), (midbodx + 1 * d%(wee)), (midbody), (fighterz(wee)), bodyc%(wee), 0 CASE 4 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx - 1), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx + 1), (midbody), (fighterz(wee)), bodyc%(wee), 0 pscircle (neckx(wee2) - (ABS(neckx(wee) / 10) * d%(wee))), (midbody - ABS(necky(wee) / 4)), (fighterz(wee)), 1.3, bodyc%(wee) CASE 5 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), buttx(wee), (necky(wee2) - 2), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 CASE 6 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) - 1), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2) - 2.5 * d%(wee)), (necky(wee2) + ABS(necky(wee) / 4)), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + ABS(necky(wee) / 4) + 1), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2) - 2 * d%(wee)), (necky(wee2) + ABS(necky(wee) / 2)), (fighterz(wee)), (neckx(wee2)), (necky(wee2) + ABS(necky(wee) / 2) + 1), (fighterz(wee)), bodyc%(wee), 0 CASE 7 psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), buttx(wee), (necky(wee2) - 2), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 CASE 8 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), bodyc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 CASE 666 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), 12, 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (neckx(wee2)), (midbody), (fighterz(wee)), 12, 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (midbodx - 2 * d%(wee)), (necky(wee2) - 2), (fighterz(wee)), 12, 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (midbodx - 2 * d%(wee)), (necky(wee2) - 2), (fighterz(wee)), 12, 0 pscube (buttx(wee) - 1 * d%(wee)), (butty(wee) - 3), (fm1), (buttx(wee) + 2 * d%(wee)), (butty(wee)), (fp1), 12, 6, 4 CASE 1998 pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), 3, flash1% CASE 2000 pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), 1, bodyc%(wee) END SELECT '---------------------------------------------------------------------- Arm-2 c% = armsc%(wee) + 8 SELECT CASE arms%(wee) CASE 1 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (neckx(wee2)), (necky(wee2) + 1), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 CASE 2 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 psline (neckx(wee2)), (necky(wee2) + 2), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2)), (elbow2y(wee2) + 1), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 CASE 3 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 psline (midbodx), (necky(wee2) - 1), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2) + 1), (fm1), c%, 0 psline (elbow2x(wee2)), (elbow2y(wee2) - 1), (fm1), (hand2x(wee2)), (hand2y(wee2) + .5), (fm1), c%, 0 CASE 4 psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2) - .3 * d%(wee)), (elbow2y(wee2) - .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2) + .3 * d%(wee)), (elbow2y(wee2) + .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 pscircle (neckx(wee2) + elbow2x(wee) / 2 * d%(wee)), (necky(wee2) + elbow2y(wee) / 2), (fm1), .8, c% pscircle (elbow2x(wee2) + hand2x(wee) / 2 * d%(wee)), (elbow2y(wee2) + hand2y(wee) / 2), (fm1), .5, c% CASE 5 psline (neckx(wee2) - .5 * d%(wee)), (necky(wee2) - .5), (fighterz(wee)), (elbow2x(wee2) + .5 * d%(wee)), (elbow2y(wee2) + .5), (fm1), c%, 0 psline (neckx(wee2) + .8 * d%(wee)), (necky(wee2) + .5), (fighterz(wee)), (elbow2x(wee2) - .5 * d%(wee)), (elbow2y(wee2) - .5), (fm1), c%, 0 psline (elbow2x(wee2) - .3 * d%(wee)), (elbow2y(wee2) - .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2) + .3 * d%(wee)), (elbow2y(wee2) + .5), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), c%, 0 psline (elbow2x(wee2) - .7), (elbow2y(wee2) - .7), (fm1), (elbow2x(wee2) + .7), (elbow2y(wee2) + .7), (fm1), c%, 1 CASE 666 psline (neckx(wee2) - 3 * d%(wee)), (necky(wee2) + 2), (fm1), (elbow2x(wee2)), (elbow2y(wee2)), (fighterz(wee) - .2), 12, 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fighterz(wee) - .2), 12, 0 psline (elbow2x(wee2) - .8 * d%(wee)), (elbow2y(wee2) - .8), (fighterz(wee) - .2), (hand2x(wee2)), (hand2y(wee2)), (fighterz(wee) - .2), 12, 0 psline (elbow2x(wee2)), (elbow2y(wee2) + .8), (fighterz(wee) - .2), (hand2x(wee2)), (hand2y(wee2)), (fighterz(wee) - .2), 12, 0 CASE 1998 pslightning (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), 1, flash2% pslightning (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), 1, flash2% CASE 2000 pscline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), .8, c% pscline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), .5, c% END SELECT '--------------------------------------------------------------------- Hand-2 c% = handsc%(wee) + 8 SELECT CASE hands%(wee) CASE 1 psline (hand2x(wee2) - .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) + .6), (hand2y(wee2) + .6), (fm1), c%, 0 psline (hand2x(wee2) + .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) - .6), (hand2y(wee2) + .6), (fm1), c%, 0 CASE 2 psline (hand2x(wee2) - .6), (hand2y(wee2) - .6), (fm1), (hand2x(wee2) + .6), (hand2y(wee2) + .6), (fm1), c%, 1 CASE 3 IF position%(wee) = 13 OR position%(wee) = 37 OR position%(wee) = 88 THEN psline (hand2x(wee2)), (hand2y(wee2) - 2), (fm1), (hand2x(wee2) - .5), (hand2y(wee2) + 1), (fm1), c%, 0 psline (hand2x(wee2)), (hand2y(wee2) - 2), (fm1), (hand2x(wee2) + .5), (hand2y(wee2) + 1), (fm1), c%, 0 ELSE psline (hand2x(wee2) + 2 * d%(wee)), (hand2y(wee2)), (fm1), (hand2x(wee2) - .5 * d%(wee)), (hand2y(wee2) - .6), (fm1), c%, 0 psline (hand2x(wee2) + 2 * d%(wee)), (hand2y(wee2)), (fm1), (hand2x(wee2) - .5 * d%(wee)), (hand2y(wee2) + .6), (fm1), c%, 0 END IF CASE 4, 2000 pscircle (hand2x(wee2)), (hand2y(wee2)), (fm1), .5, c% CASE 5 psline (hand2x(wee2)), (hand2y(wee2) - .8), (fm1), (hand2x(wee2) - .8), (hand2y(wee2)), (fm1), c%, 0 psline (hand2x(wee2)), (hand2y(wee2) + .8), (fm1), (hand2x(wee2) - .8), (hand2y(wee2)), (fm1), c%, 0 psline (hand2x(wee2)), (hand2y(wee2) - .8), (fm1), (hand2x(wee2) + .8), (hand2y(wee2)), (fm1), c%, 0 psline (hand2x(wee2)), (hand2y(wee2) + .8), (fm1), (hand2x(wee2) + .8), (hand2y(wee2)), (fm1), c%, 0 CASE 666 psline (hand2x(wee2) - 1), (hand2y(wee2) - 1), (fm1), (hand2x(wee2) + 1), (hand2y(wee2) + 1), (fm1), 6, 1 END SELECT '---------------------------------------------------------------- Razer Arm-2 IF razers%(wee) > 0 THEN IF razers%(wee) > 50 THEN c% = flash3% ELSE c% = 4 psline (elbow2x(wee2) + (hand2x(wee) / 2) * d%(wee)), (elbow2y(wee2) + (hand2y(wee) / 2)), (fm1 - .1), (elbow2x(wee2) + (hand2x(wee) * 2) * d%(wee)), (elbow2y(wee2) + (hand2y(wee) * 2)), (fm1 - .1), c%, 0 END IF '---------------------------------------------------------------------- Legs c% = legsc%(wee) + 8 SELECT CASE legs%(wee) CASE 1 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 CASE 2 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 CASE 3 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2) - 1), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee) - 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2) - 1), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 psline (buttx(wee)), (butty(wee) - 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 CASE 4 psline (buttx(wee) - 1 * d%(wee)), (butty(wee) + 1), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2) - .5 * d%(wee)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2) + .5 * d%(wee)), (nee1y(wee2) + .5), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 pscircle (buttx(wee) + (nee1x(wee) / 2) * d%(wee)), (butty(wee) + nee1y(wee) / 2), (fighterz(wee) + .05), 1, legsc%(wee) pscircle (nee1x(wee2) + (foot1x(wee) / 2) * d%(wee)), (nee1y(wee + 2) + foot1y(wee) / 2), (fp1), .8, legsc%(wee) psline (buttx(wee) - 1 * d%(wee)), (butty(wee) + 1), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (buttx(wee) + 1 * d%(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2) - .5 * d%(wee)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2) + .5 * d%(wee)), (nee2y(wee2) + .5), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 pscircle (buttx(wee) + (nee2x(wee) / 2) * d%(wee)), (butty(wee) + nee2y(wee) / 2), (fighterz(wee) - .05), 1, c% pscircle (nee2x(wee2) + (foot2x(wee) / 2) * d%(wee)), (nee2y(wee + 2) + foot2y(wee) / 2), (fm1), .8, c% CASE 5 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2) + 2), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2) - 2 * d%(wee)), (nee1y(wee2) - (nee1y(wee) / 3)), (fp1), (nee1x(wee2) + 1 * d%(wee)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2) - 2 * d%(wee)), (nee1y(wee2) + (nee1y(wee) / 3)), (fp1), (nee1x(wee2) + 1 * d%(wee)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 psline (buttx(wee)), (butty(wee) + 2), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2)), (nee2y(wee2) + 2), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2) - 2 * d%(wee)), (nee2y(wee2) - (nee2y(wee) / 3)), (fm1), (nee2x(wee2) + 1 * d%(wee)), (nee2y(wee2)), (fm1), c%, 0 psline (nee2x(wee2) - 2 * d%(wee)), (nee2y(wee2) + (nee2y(wee) / 3)), (fm1), (nee2x(wee2) + 1 * d%(wee)), (nee2y(wee2)), (fm1), c%, 0 CASE 666 psline (buttx(wee) + 2 * d%(wee)), (butty(wee) - 2), (fp1), (nee1x(wee2)), (nee1y(wee2) + 2), (fighterz(wee) + .2), 4, 0 psline (nee1x(wee2)), (nee1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2)), (foot1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fp1), (nee1x(wee2)), (nee1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (nee1x(wee2)), (nee1y(wee2) + 2), (fighterz(wee) + .2), (foot1x(wee2)), (foot1y(wee2)), (fighterz(wee) + .2), 4, 0 psline (buttx(wee) + 2 * d%(wee)), (butty(wee) - 2), (fm1), (nee2x(wee2)), (nee2y(wee2) + 2), (fighterz(wee) - .2), 6, 0 psline (nee2x(wee2)), (nee2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2)), (foot2y(wee2)), (fighterz(wee) - .2), 6, 0 psline (buttx(wee) - 1 * d%(wee)), (butty(wee)), (fm1), (nee2x(wee2)), (nee2y(wee2)), (fighterz(wee) - .2), 6, 0 psline (nee2x(wee2)), (nee2y(wee2) + 2), (fighterz(wee) - .2), (foot2x(wee2)), (foot2y(wee2)), (fighterz(wee) - .2), 6, 0 CASE 1998 pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), 1, flash2% pslightning (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), 1, flash2% pslightning (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), 1, flash2% pslightning (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot1y(wee2)), (fm1), 1, flash2% CASE 2000 pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), .8, legsc%(wee) pscline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), .5, legsc%(wee) pscline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), .8, c% pscline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), .5, c% END SELECT '---------------------------------------------------------------------- Feet c% = feetc%(wee) + 8 tip = 2 * d%(wee) IF position%(wee) = 49 THEN psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2) + 2), (fm1), c%, 0 psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) - tip), (foot1y(wee2) - 2), (fp1), feetc%(wee), 0 ELSE SELECT CASE feet%(wee) CASE 1 psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0 psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0 CASE 2 psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 1 psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 1 CASE 3 psline (foot2x(wee2)), (foot2y(wee2)), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0 psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + tip), (foot2y(wee2)), (fm1), c%, 0 psline (foot1x(wee2)), (foot1y(wee2)), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0 psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + tip), (foot1y(wee2)), (fp1), feetc%(wee), 0 CASE 4, 2000 pscircle (foot1x(wee2) + 1 * d%(wee)), (foot1y(wee2)), (fp1), .5, feetc%(wee) pscircle (foot2x(wee2) + 1 * d%(wee)), (foot2y(wee2)), (fm1), .5, c% CASE 5 pscircle (foot1x(wee2)), (foot1y(wee2) - .5), (fp1), .5, feetc%(wee) psline (foot1x(wee2)), (foot1y(wee2) - 1), (fp1), (foot1x(wee2) + 2 * d%(wee)), (foot1y(wee2)), (fp1), feetc%(wee), 0 pscircle (foot2x(wee2)), (foot2y(wee2) - .5), (fm1), .5, c% psline (foot2x(wee2)), (foot2y(wee2) - 1), (fm1), (foot2x(wee2) + 2 * d%(wee)), (foot2y(wee2)), (fm1), c%, 0 CASE 666 psline (foot1x(wee2) - .4), (foot1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2) + .4), (foot1y(wee2)), (fighterz(wee) + .2), 8, 1 psline (foot1x(wee2) + .4 * d%(wee)), (foot1y(wee2) - 1), (fighterz(wee) + .2), (foot1x(wee2) + 1 * d%(wee)), (foot1y(wee2)), (fighterz(wee) + .2), 8, 0 psline (foot2x(wee2) - .4), (foot2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2) + .4), (foot2y(wee2)), (fighterz(wee) - .2), 8, 1 psline (foot2x(wee2) + .4 * d%(wee)), (foot2y(wee2) - 1), (fighterz(wee) - .2), (foot2x(wee2) + 1 * d%(wee)), (foot2y(wee2)), (fighterz(wee) - .2), 8, 0 END SELECT END IF '============================================================================ '------------------------------------------------ Low Detail Fighter Graphics ELSE 'head pscircle (headx(wee2)), (heady(wee2)), (fighterz(wee)), 1.5, headc%(wee) 'body psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (neckx(wee2)), (necky(wee2)), (fighterz(wee)), bodyc%(wee), 0 'arms psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow1x(wee2)), (elbow1y(wee2)), (fp1), armsc%(wee), 0 psline (neckx(wee2)), (necky(wee2)), (fighterz(wee)), (elbow2x(wee2)), (elbow2y(wee2)), (fm1), armsc%(wee) + 8, 0 psline (elbow1x(wee2)), (elbow1y(wee2)), (fp1), (hand1x(wee2)), (hand1y(wee2)), (fp1), armsc%(wee), 0 psline (elbow2x(wee2)), (elbow2y(wee2)), (fm1), (hand2x(wee2)), (hand2y(wee2)), (fm1), armsc%(wee) + 8, 0 'legs psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee1x(wee2)), (nee1y(wee2)), (fp1), legsc%(wee), 0 psline (nee1x(wee2)), (nee1y(wee2)), (fp1), (foot1x(wee2)), (foot1y(wee2)), (fp1), legsc%(wee), 0 psline (buttx(wee)), (butty(wee)), (fighterz(wee)), (nee2x(wee2)), (nee2y(wee2)), (fm1), legsc%(wee) + 8, 0 psline (nee2x(wee2)), (nee2y(wee2)), (fm1), (foot2x(wee2)), (foot2y(wee2)), (fm1), legsc%(wee) + 8, 0 '---------------------------------------------------------------------------- END IF 36 NEXT wee END SUB SUB fighterfreeze (n) IF canjump%(n) = 1 OR ticker% < 1 THEN butth(n) = 0: buttv(n) = 0 headh(n) = 0 neckh(n) = 0 elbow1h(n) = 0 elbow2h(n) = 0 hand1h(n) = 0 hand2h(n) = 0 nee1h(n) = 0 nee2h(n) = 0 foot1h(n) = 0 foot2h(n) = 0 headv(n) = 0 neckv(n) = 0 elbow1v(n) = 0 elbow2v(n) = 0 hand1v(n) = 0 hand2v(n) = 0 nee1v(n) = 0 nee2v(n) = 0 foot1v(n) = 0 foot2v(n) = 0 END SUB SUB fightergoo (wee, d) headh(wee) = headh(wee) / d neckh(wee) = neckh(wee) / d elbow1h(wee) = elbow1h(wee) / d elbow2h(wee) = elbow2h(wee) / d hand1h(wee) = hand1h(wee) / d hand2h(wee) = hand2h(wee) / d nee1h(wee) = nee1h(wee) / d nee2h(wee) = nee2h(wee) / d foot1h(wee) = foot1h(wee) / d foot2h(wee) = foot2h(wee) / d headv(wee) = headv(wee) / d neckv(wee) = neckv(wee) / d elbow1v(wee) = elbow1v(wee) / d elbow2v(wee) = elbow2v(wee) / d hand1v(wee) = hand1v(wee) / d hand2v(wee) = hand2v(wee) / d nee1v(wee) = nee1v(wee) / d nee2v(wee) = nee2v(wee) / d foot1v(wee) = foot1v(wee) / d foot2v(wee) = foot2v(wee) / d END SUB SUB fighterinit IF stage% = 12 THEN FOR wee = 1 TO 2 particle (buttx(wee) + ((RND - .5) * 15)), (butty(wee) + ((RND - .5) * 15)), fighterz(wee), 15, 20 NEXT wee END IF buttx(1) = -ring% / 3 buttx(2) = ring% / 3 d%(1) = 1 d%(2) = -1 FOR wee = 1 TO 2 IF AIactive%(wee) = 1 THEN AIfighter (wee) vexed%(wee) = 0 razers%(wee) = 0 Special%(wee) = 0 decap 3 pticker%(wee) = 0 butty(wee) = floor1 - 20 fightercompress (wee) fighterz(wee) = midstage fighterfreeze (wee) koslide%(wee) = ko(wee) hpslide%(wee) = health%(wee) SELECT CASE arms%(wee) CASE 1 ahpow%(wee) = 0 akpow%(wee) = 5 CASE 2 ahpow%(wee) = 2 akpow%(wee) = 3 CASE 3 ahpow%(wee) = 3 akpow%(wee) = 2 CASE 4 ahpow%(wee) = 1 akpow%(wee) = 4 CASE 5 ahpow%(wee) = 4 akpow%(wee) = 1 CASE 1998 ahpow%(wee) = 4 akpow%(wee) = 2 CASE 666 ahpow%(wee) = 5 akpow%(wee) = 7 CASE 2000 ahpow%(wee) = 4 akpow%(wee) = 5 END SELECT SELECT CASE legs%(wee) CASE 1 lhpow%(wee) = 0 lkpow%(wee) = 5 CASE 2 lhpow%(wee) = 2 lkpow%(wee) = 3 CASE 3 lhpow%(wee) = 3 lkpow%(wee) = 2 CASE 4 lhpow%(wee) = 3 lkpow%(wee) = 1 CASE 5 lhpow%(wee) = 2 lkpow%(wee) = 2 CASE 1998 lhpow%(wee) = 7 lkpow%(wee) = 3 CASE 2000 lhpow%(wee) = 7 lkpow%(wee) = 7 END SELECT SELECT CASE head%(wee) CASE 1: kocharge(wee) = .2: ragecharge(wee) = .4 CASE 2: kocharge(wee) = .3: ragecharge(wee) = .3 CASE 3: kocharge(wee) = .4: ragecharge(wee) = .2 CASE 4: kocharge(wee) = .1: ragecharge(wee) = .5 CASE 5: kocharge(wee) = .5: ragecharge(wee) = .1 CASE 666: kocharge(wee) = .5: ragecharge(wee) = .7 CASE 2000: kocharge(wee) = .8: ragecharge(wee) = 1 END SELECT NEXT wee END SUB SUB fighterlimits FOR wee = 1 TO 2 IF ABS(elbow1x(wee)) > 10 THEN elbow1x(wee) = 0 IF ABS(hand1x(wee)) > 10 THEN hand1x(wee) = 0 IF ABS(nee1x(wee)) > 10 THEN nee1x(wee) = 0 IF ABS(foot1x(wee)) > 10 THEN foot1x(wee) = 0 IF ABS(elbow2x(wee)) > 10 THEN elbow2x(wee) = 0 IF ABS(hand2x(wee)) > 10 THEN hand2x(wee) = 0 IF ABS(nee2x(wee)) > 10 THEN nee2x(wee) = 0 IF ABS(foot2x(wee)) > 10 THEN foot2x(wee) = 0 IF ABS(elbow1y(wee)) > 10 THEN elbow1y(wee) = 0 IF ABS(hand1y(wee)) > 10 THEN hand1y(wee) = 0 IF ABS(nee1y(wee)) > 10 THEN nee1y(wee) = 0 IF ABS(foot1y(wee)) > 10 THEN foot1y(wee) = 0 IF ABS(elbow2y(wee)) > 10 THEN elbow2y(wee) = 0 IF ABS(hand2y(wee)) > 10 THEN hand2y(wee) = 0 IF ABS(nee2y(wee)) > 10 THEN nee2y(wee) = 0 IF ABS(foot2y(wee)) > 10 THEN foot2y(wee) = 0 NEXT wee END SUB SUB fightermove FOR pc1 = 1 TO 2 pc2 = pc1 + 2 '--------------------------------------------------------------- Misc Physics 'Push Appart IF position%(1) = 1 AND position%(2) = 1 AND butty(1) > floor1 - 25 AND butty(2) > floor1 - 25 THEN IF fighterz(1) < fighterz(2) + .1 AND fighterz(1) > fighterz(2) - .1 THEN IF neckx(3) > neckx(4) - 1 AND neckx(3) < neckx(4) + 1 THEN IF buttx(1) < buttx(2) THEN butth(1) = butth(1) - .5: butth(2) = butth(2) + .5 ELSE butth(1) = butth(1) + .5: butth(2) = butth(2) - .5 END IF END IF END IF '------------------------------------------------------------- Apply Movement buttx(pc1) = buttx(pc1) + butth(pc1) headx(pc1) = headx(pc1) + headh(pc1) neckx(pc1) = neckx(pc1) + neckh(pc1) elbow1x(pc1) = elbow1x(pc1) + elbow1h(pc1) elbow2x(pc1) = elbow2x(pc1) + elbow2h(pc1) hand1x(pc1) = hand1x(pc1) + hand1h(pc1) hand2x(pc1) = hand2x(pc1) + hand2h(pc1) nee1x(pc1) = nee1x(pc1) + nee1h(pc1) nee2x(pc1) = nee2x(pc1) + nee2h(pc1) foot1x(pc1) = foot1x(pc1) + foot1h(pc1) foot2x(pc1) = foot2x(pc1) + foot2h(pc1) butty(pc1) = butty(pc1) + buttv(pc1) heady(pc1) = heady(pc1) + headv(pc1) necky(pc1) = necky(pc1) + neckv(pc1) elbow1y(pc1) = elbow1y(pc1) + elbow1v(pc1) elbow2y(pc1) = elbow2y(pc1) + elbow2v(pc1) hand1y(pc1) = hand1y(pc1) + hand1v(pc1) hand2y(pc1) = hand2y(pc1) + hand2v(pc1) nee1y(pc1) = nee1y(pc1) + nee1v(pc1) nee2y(pc1) = nee2y(pc1) + nee2v(pc1) foot1y(pc1) = foot1y(pc1) + foot1v(pc1) foot2y(pc1) = foot2y(pc1) + foot2v(pc1) fighterz(pc1) = fighterz(pc1) + fighterd(pc1) hx(pc1) = hx(pc1) + hh(pc1) hy(pc1) = hy(pc1) + hv(pc1) '------------------------------------------------------------- Flip Direction IF pc1 = 1 AND position%(1) = 1 AND pticker%(1) > 20 AND canjump%(1) = 1 THEN IF buttx(1) > buttx(2) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 END IF IF pc1 = 2 AND position%(2) = 1 AND pticker%(2) > 20 AND canjump%(2) = 1 THEN IF buttx(1) < buttx(2) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 END IF '----------------------------------------------------------- Create X/Y Cords neckx(pc2) = buttx(pc1) + neckx(pc1) * d%(pc1) necky(pc2) = butty(pc1) + necky(pc1) headx(pc2) = neckx(pc2) + headx(pc1) * d%(pc1) heady(pc2) = necky(pc2) + heady(pc1) elbow1x(pc2) = neckx(pc2) + elbow1x(pc1) * d%(pc1) elbow1y(pc2) = necky(pc2) + elbow1y(pc1) elbow2x(pc2) = neckx(pc2) + elbow2x(pc1) * d%(pc1) elbow2y(pc2) = necky(pc2) + elbow2y(pc1) hand1x(pc2) = elbow1x(pc2) + hand1x(pc1) * d%(pc1) hand1y(pc2) = elbow1y(pc2) + hand1y(pc1) hand2x(pc2) = elbow2x(pc2) + hand2x(pc1) * d%(pc1) hand2y(pc2) = elbow2y(pc2) + hand2y(pc1) nee1x(pc2) = buttx(pc1) + nee1x(pc1) * d%(pc1) nee1y(pc2) = butty(pc1) + nee1y(pc1) nee2x(pc2) = buttx(pc1) + nee2x(pc1) * d%(pc1) nee2y(pc2) = butty(pc1) + nee2y(pc1) foot1x(pc2) = nee1x(pc2) + foot1x(pc1) * d%(pc1) foot1y(pc2) = nee1y(pc2) + foot1y(pc1) foot2x(pc2) = nee2x(pc2) + foot2x(pc1) * d%(pc1) foot2y(pc2) = nee2y(pc2) + foot2y(pc1) '---------------------------------------------------------------------------- NEXT pc1 '----------------------------------------------------------------------- Hair 'P1 IF hairl%(1) > 0 THEN IF headless%(1) = 1 THEN headx(3) = hx(1): heady(3) = hy(1) hairx(1) = headx(3) - 2 * d%(1) hairy(1) = heady(3) + 1 FOR n% = 2 TO 5 hairy(n%) = hairy(n%) + gravity IF hairx(n%) < hairx(n% - 1) - hairl%(1) THEN hairx(n%) = hairx(n% - 1) - hairl%(1) IF hairy(n%) < hairy(n% - 1) - hairl%(1) THEN hairy(n%) = hairy(n% - 1) - hairl%(1) IF hairx(n%) > hairx(n% - 1) + hairl%(1) THEN hairx(n%) = hairx(n% - 1) + hairl%(1) IF hairy(n%) > hairy(n% - 1) + hairl%(1) THEN hairy(n%) = hairy(n% - 1) + hairl%(1) NEXT n% FOR n% = 2 TO 5 IF hairx(n%) < hairx(n% - 1) THEN hairx(n%) = hairx(n%) + .5 IF hairx(n%) > hairx(n% - 1) THEN hairx(n%) = hairx(n%) - .5 NEXT n% END IF 'P2 IF hairl%(2) > 0 THEN IF headless%(2) = 1 THEN headx(4) = hx(2): heady(4) = hy(2) hairx(6) = headx(4) - 2 * d%(2) hairy(6) = heady(4) + 1 FOR n% = 7 TO 10 hairy(n%) = hairy(n%) + gravity IF hairx(n%) < hairx(n% - 1) - hairl%(2) THEN hairx(n%) = hairx(n% - 1) - hairl%(2) IF hairy(n%) < hairy(n% - 1) - hairl%(2) THEN hairy(n%) = hairy(n% - 1) - hairl%(2) IF hairx(n%) > hairx(n% - 1) + hairl%(2) THEN hairx(n%) = hairx(n% - 1) + hairl%(2) IF hairy(n%) > hairy(n% - 1) + hairl%(2) THEN hairy(n%) = hairy(n% - 1) + hairl%(2) NEXT n% FOR n% = 7 TO 10 IF hairx(n%) < hairx(n% - 1) THEN hairx(n%) = hairx(n%) + .5 IF hairx(n%) > hairx(n% - 1) THEN hairx(n%) = hairx(n%) - .5 NEXT n% END IF END SUB SUB fightername (n%) '-------------------------------------------------------------- Generate Name SELECT CASE body%(n%) CASE 1: n1$ = "Th" CASE 2: n1$ = "S" CASE 3: n1$ = "K" CASE 4: n1$ = "V" CASE 5: n1$ = "R" CASE 6: n1$ = "L" CASE 7: n1$ = "D" CASE 8: n1$ = "Br" END SELECT SELECT CASE head%(n%) CASE 1: n2$ = "a" CASE 2: n2$ = "e" CASE 3: n2$ = "i" CASE 4: n2$ = "o" CASE 5: n2$ = "u" END SELECT SELECT CASE hands%(n%) CASE 1: n4$ = "kk" CASE 2: n4$ = "t" CASE 3: n4$ = "n" CASE 4: n4$ = "t" CASE 5: n4$ = "l" END SELECT SELECT CASE feet%(n%) CASE 1: n6$ = "n" CASE 2: n6$ = "ly" CASE 3: n6$ = "th" CASE 4: n6$ = "ra" CASE 5: n6$ = "cha" END SELECT name$(n%) = n1$ + n2$ + n3$ + n4$ + n5$ + n6$ IF head%(n%) = 666 THEN name$(n%) = "Demize" IF head%(n%) = 1998 THEN name$(n%) = "Magnissa" IF head%(n%) = 2000 THEN name$(n%) = "MasterBean" END SUB SUB fighterpop (n) position%(n) = 1 buttv(n) = -gravity * 10 END SUB SUB fighterpositions fighterdirect FOR pc1 = 1 TO 2 '------------------------------------------- Player Current / Player Opponent IF pc1 = 2 THEN po1 = 1 ELSE po1 = 2 pc2 = pc1 + 2 po2 = po1 + 2 '------------------------------------------------------------ position ticker IF psaver%(pc1) = position%(pc1) THEN IF pticker%(pc1) < 32767 THEN pticker%(pc1) = pticker%(pc1) + 1 ELSE psaver%(pc1) = position%(pc1) pticker%(pc1) = 1 END IF '======================================================= Position Replacement '-------------------------------------------------------------- Punch 2 Elbow IF pticker%(pc1) = 1 THEN IF neckx(3) > neckx(4) - 6 AND neckx(3) < neckx(4) + 6 THEN IF position%(pc1) = 2 OR position%(pc1) = 3 THEN position%(pc1) = 4 END IF '---------------------------------------------------------------- Short 2 Nee IF canjump%(pc1) = 1 AND neckx(3) > neckx(4) - 3 AND neckx(3) < neckx(4) + 3 THEN IF position%(pc1) = 5 THEN position%(pc1) = 7 END IF '--------------------------------------------------- Roundhouse 2 In-Air Kick IF position%(pc1) = 6 AND canjump%(pc1) = 0 AND ABS(butth(pc1)) > .5 THEN position%(pc1) = 14 END IF '-------------------------------------------------------------- ---- --- -- - END IF '------------------------------------------------------ Opponent Target Areas IF headless%(po1) = 0 THEN h1x = headx(po2) - 2 h1y = heady(po2) - 4 h2x = headx(po2) + 2 h2y = heady(po2) + 4 ELSE h1x = neckx(po2) h1y = necky(po2) h2x = neckx(po2) h2y = necky(po2) END IF 'psline (h1x), (h1y), (fighterz(po1)), (h2x), (h2y), (fighterz(po1)), 12, 1 m1x = neckx(po2) - 2 m1y = h2y m2x = neckx(po2) + 2 m2y = butty(po1) 'psline (m1x), (m1y), (fighterz(po1)), (m2x), (m2y), (fighterz(po1)), 9, 1 l1x = buttx(po1) - 5 l1y = butty(po1) l2x = buttx(po1) + 5 IF foot1y(po2) > foot2y(po2) THEN l2y = foot1y(po2) ELSE l2y = foot2y(po2) 'psline (l1x), (l1y), (fighterz(po1)), (l2x), (l2y), (fighterz(po1)), 14, 1 'Save Health/KO for Blocking IF position%(po1) = 99 THEN healths% = health%(po1): kos = ko(po1) ELSE healths% = 0 '---------------------------------------------------- Turn Off Special Switch IF position%(pc1) > 29 AND position%(pc1) < 81 THEN Special%(1) = 0 '------------------------------------------------------------------ positions SELECT CASE position%(pc1) '------------------------------------------------------------------- Standing CASE IS = 1 droop = (ko(pc1) / 50) + (health%(pc1) / 200) IF neckx(pc1) > 3 THEN neckh(pc1) = neckh(pc1) - .05 ELSE neckh(pc1) = neckh(pc1) + .05 IF headx(pc1) > 1 THEN headh(pc1) = headh(pc1) - .01 ELSE headh(pc1) = headh(pc1) + .05 IF elbow1x(pc1) > .5 THEN elbow1h(pc1) = elbow1h(pc1) - .08 ELSE elbow1h(pc1) = elbow1h(pc1) + .08 IF elbow2x(pc1) > -3 THEN elbow2h(pc1) = elbow2h(pc1) - .08 ELSE elbow2h(pc1) = elbow2h(pc1) + .08 IF hand1x(pc1) > 2 THEN hand1h(pc1) = hand1h(pc1) - .08 ELSE hand1h(pc1) = hand1h(pc1) + .08 IF hand2x(pc1) > 3 THEN hand2h(pc1) = hand2h(pc1) - .08 ELSE hand2h(pc1) = hand2h(pc1) + .08 IF legs%(pc1) = 666 THEN IF canjump%(pc1) = 1 AND ABS(butth(pc1)) > .05 AND ABS(butth(pc1)) < 5 THEN nee1x(pc1) = -2 + (walkx(pc1) * ABS(butth(pc1) / 1.8)) nee2x(pc1) = 0 - (walkx(pc1) * ABS(butth(pc1) / 1.8)) ELSE IF nee1x(pc1) > -3 THEN nee1h(pc1) = nee1h(pc1) - .05 ELSE nee1h(pc1) = nee1h(pc1) + .01 IF nee2x(pc1) > -3 THEN nee2h(pc1) = nee2h(pc1) - .05 ELSE nee2h(pc1) = nee2h(pc1) + .01 END IF IF foot1x(pc1) > 5 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .01 IF foot2x(pc1) > 5 THEN foot2h(pc1) = foot2h(pc1) - .05 ELSE foot2h(pc1) = foot2h(pc1) + .01 ELSE IF canjump%(pc1) = 1 AND ABS(butth(pc1)) > .05 AND ABS(butth(pc1)) < 5 THEN nee1x(pc1) = -1 + (walkx(pc1) * ABS(butth(pc1) / 1.8)) nee2x(pc1) = 3 - (walkx(pc1) * ABS(butth(pc1) / 1.8)) ELSE IF nee1x(pc1) > 5 THEN nee1h(pc1) = nee1h(pc1) - .05 ELSE nee1h(pc1) = nee1h(pc1) + .05 IF nee2x(pc1) > -1 THEN nee2h(pc1) = nee2h(pc1) - .05 ELSE nee2h(pc1) = nee2h(pc1) + .05 END IF IF foot1x(pc1) > -1 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .01 IF foot2x(pc1) > -3 THEN foot2h(pc1) = foot2h(pc1) - .01 ELSE foot2h(pc1) = foot2h(pc1) + .05 END IF IF necky(pc1) > -7 - droop THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .05 IF heady(pc1) > -1 - droop THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .01 IF elbow1y(pc1) > 6 THEN elbow1v(pc1) = elbow1v(pc1) - .08 ELSE elbow1v(pc1) = elbow1v(pc1) + .08 IF elbow2y(pc1) > 5 THEN elbow2v(pc1) = elbow2v(pc1) - .08 ELSE elbow2v(pc1) = elbow2v(pc1) + .08 IF hand1y(pc1) > -2 - droop THEN hand1v(pc1) = hand1v(pc1) - .08 ELSE hand1v(pc1) = hand1v(pc1) + .08 IF hand2y(pc1) > 2.5 - droop THEN hand2v(pc1) = hand2v(pc1) - .08 ELSE hand2v(pc1) = hand2v(pc1) + .08 IF nee1y(pc1) > 8 THEN nee1v(pc1) = nee1v(pc1) - .01 ELSE nee1v(pc1) = nee1v(pc1) + .1 IF nee2y(pc1) > 8 THEN nee2v(pc1) = nee2v(pc1) - .01 ELSE nee2v(pc1) = nee2v(pc1) + .1 IF foot1y(pc1) > 7 THEN foot1v(pc1) = foot1v(pc1) - .01 ELSE foot1v(pc1) = foot1v(pc1) + .05 IF foot2y(pc1) > 7 THEN foot2v(pc1) = foot2v(pc1) - .01 ELSE foot2v(pc1) = foot2v(pc1) + .1 fightergoo (pc1), 1.3 '------------------------------------------------------------------------ Jab CASE IS = 2 IF pticker%(pc1) = 1 THEN sbfx 1 fighterfreeze (pc1) IF neckx(pc1) < 3.5 THEN neckx(pc1) = neckx(pc1) + .5 elbow1x(pc1) = 4 elbow1y(pc1) = 0 hand1x(pc1) = 3 hand1y(pc1) = 0 elbow2y(pc1) = 2 'Momontary Pause / Detect hit IF pticker%(pc1) = 2 THEN fighterfreeze (pc1) IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) + 5 'High/Head IF hand1x(pc2) > h1x AND hand1x(pc2) < h2x AND hand1y(pc2) > h1y AND hand1y(pc2) < h2y THEN health%(po1) = health%(po1) - ahpow%(pc1) * 2 ko(po1) = ko(po1) - akpow%(pc1) * 2 position%(po1) = 1 IF headx(po1) > 0 THEN headx(po1) = headx(po1) - 1 IF position%(po1) < 99 THEN IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 4, 3: butth(po1) = butth(po1) + .5 ELSE particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 3: butth(po1) = butth(po1) - .5 END IF IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 10 END IF 'Medium/Low IF hand1x(pc2) > m1x AND hand1x(pc2) < m2x AND hand1y(pc2) > m1y AND hand1y(pc2) < l2y THEN health%(po1) = health%(po1) - ahpow%(pc1) ko(po1) = ko(po1) - akpow%(pc1) position%(po1) = 1 neckx(po1) = neckx(po1) + 1 necky(po1) = necky(po1) + 1 IF position%(po1) < 99 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 1, 5 IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 9 END IF IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) - 5 END IF 'Return Position IF pticker%(pc1) > 3 THEN elbow1x(pc1) = 2 elbow1h(pc1) = -.5 elbow1y(pc1) = 1 elbow1v(pc1) = 1 hand1h(pc1) = -.5 hand1v(pc1) = -.5 position%(pc1) = 1 END IF '--------------------------------------------------------------------- Strong CASE IS = 3 IF pticker%(pc1) = 1 THEN sbfx 2 fighterfreeze (pc1) IF neckx(pc1) < 3 THEN neckx(pc1) = neckx(pc1) + 1 elbow2x(pc1) = 4 elbow2y(pc1) = -1 hand2x(pc1) = 3 hand2y(pc1) = -1.5 'Momontary Pause / Detect hit IF pticker%(pc1) = 2 THEN fighterfreeze (pc1) IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) + 5 'High/Head IF hand2x(pc2) > h1x AND hand2x(pc2) < h2x AND hand2y(pc2) > h1y AND hand2y(pc2) < h2y THEN health%(po1) = health%(po1) - ahpow%(pc1) * 2 ko(po1) = ko(po1) - akpow%(pc1) position%(po1) = 1 IF headx(po1) > 0 THEN headx(po1) = headx(po1) - 1 IF neckx(po1) > 0 THEN neckx(po1) = neckx(po1) - 1 IF position%(po1) < 99 THEN IF buttx(pc1) < buttx(po1) THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 3: butth(po1) = butth(po1) + 1 ELSE particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 3: butth(po1) = butth(po1) - 1 END IF IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 11 END IF 'Medium/Low IF hand2x(pc2) > m1x AND hand2x(pc2) < m2x AND hand2y(pc2) > m1y AND hand2y(pc2) < l2y THEN health%(po1) = health%(po1) - ahpow%(pc1) * 3 ko(po1) = ko(po1) - akpow%(pc1) * 2 position%(po1) = 1 neckx(po1) = neckx(po1) + 1 necky(po1) = necky(po1) + 1 IF position%(po1) < 99 THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 1, 5 IF razers%(pc1) > 0 THEN soundticker% = 0: sbfx 17 ELSE soundticker% = 0: sbfx 10 END IF IF razers%(pc1) > 0 THEN ahpow%(pc1) = ahpow%(pc1) - 5 END IF 'Return Position IF pticker%(pc1) > 3 THEN elbow2x(pc1) = 2 elbow2h(pc1) = -1.5 elbow2v(pc1) = 1 hand2h(pc1) = 0 hand2v(pc1) = .5 position%(pc1) = 1 END IF '---------------------------------------------------------------------- Elbow CASE IS = 4 IF pticker%(pc1) = 1 THEN sbfx 3 fighterfreeze (pc1) elbow1x(pc1) = 5 elbow1y(pc1) = 0 hand1x(pc1) = -3 hand1y(pc1) = 1.5 'Momontary Pause / Detect hit IF pticker%(pc1) = 2 THEN fighterfreeze (pc1) IF elbow1x(pc2) > l1x AND elbow1x(pc2) < l2x AND elbow1y(pc2) > h1y AND elbow1y(pc2) < l2y THEN health%(po1) = health%(po1) - ahpow%(pc1) ko(po1) = ko(po1) - akpow%(pc1) * 2 IF buttx(pc1) > buttx(po1) THEN butth(po1) = butth(po1) - .3 ELSE butth(po1) = butth(po1) + .3 IF position%(po1) < 99 THEN particle (elbow1x(pc2)), (elbow1y(pc2)), (fighterz(pc1)), 1, 3 soundticker% = 0: sbfx 9 position%(po1) = 1 END IF END IF 'Return Position IF pticker%(pc1) > 3 THEN elbow1v(pc1) = 1 position%(pc1) = 1 END IF '---------------------------------------------------------------------- Short CASE IS = 5 fighterfreeze (pc1) SELECT CASE combo%(pc1) '----------------------------+ CASE 0 sbfx 2 nee1x(pc1) = 6 nee1y(pc1) = -1 foot1x(pc1) = 6 foot1y(pc1) = -1 '----------------------------+ CASE 1 sbfx 1 neckx(pc1) = neckx(pc1) + 1 nee1x(pc1) = 5 nee1y(pc1) = 5 foot1x(pc1) = 5 foot1y(pc1) = 5 '----------------------------+ CASE 2 sbfx 2 combo%(pc1) = -1 buttx(pc1) = buttx(pc1) + (2 * d%(pc1)) buttv(pc1) = buttv(pc1) - 3 neckx(pc1) = -1 nee1x(pc1) = 6 nee1y(pc1) = -6 foot1x(pc1) = 6 foot1y(pc1) = -6 nee2x(pc1) = 0 foot2x(pc1) = 0 nee1v(pc1) = 1 foot1v(pc1) = 2 elbow1x(pc1) = elbow1x(pc1) + 2 elbow1y(pc1) = elbow1y(pc1) - 2 hand2x(pc1) = hand2x(pc1) - 2 hand2y(pc1) = hand2y(pc1) + 2 END SELECT tx = buttx(pc1) + nee1x(pc1) * d%(pc1) ty = butty(pc1) + nee1y(pc1) tx = tx + foot1x(pc1) * d%(pc1) ty = ty + foot1y(pc1) 'Detect Hit IF tx > l1x AND tx < l2x AND ty > h1y AND ty < l2y THEN soundticker% = 0: sbfx 9 IF position%(po1) < 99 THEN health%(po1) = health%(po1) - lhpow%(pc1) ko(po1) = ko(po1) - lkpow%(pc1) position%(po1) = 1 IF combo%(pc1) = -1 THEN particle (tx), (ty), (fighterz(pc1)), 2, 5: buttv(po1) = -8: butth(po1) = d%(pc1): fall (po1) ELSE IF position%(po1) < 99 THEN particle (tx), (ty), (fighterz(pc1)), 1, 5 combo%(pc1) = combo%(pc1) + 1: combol%(pc1) = 30 END IF END IF 'Return Position position%(pc1) = 1 IF foot1x(pc1) > 0 THEN foot1h(pc1) = -2 '----------------------------------------------------------------- Roundhouse CASE IS = 6 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) neckx(pc1) = 0 buttx(pc1) = buttx(pc1) + (d%(pc1) * 2) nee1x(pc1) = 0 foot1x(pc1) = 0 IF foot1y(pc1) < 1 OR nee1y(pc1) > 3 THEN nee1y(pc1) = 8 foot1y(pc1) = 7 END IF elbow1h(pc1) = -.5 elbow2h(pc1) = .5 elbow2v(pc1) = -.5 END IF IF pticker%(pc1) = 3 THEN IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 END IF END IF IF pticker%(pc1) = 5 THEN nee2h(pc1) = 2 nee2v(pc1) = -2 foot2h(pc1) = -1 foot2v(pc1) = -1 END IF IF pticker%(pc1) = 8 THEN sbfx 4 fighterfreeze (pc1) elbow1x(pc1) = elbow1x(pc1) + 2 elbow1y(pc1) = elbow1y(pc1) - 2 hand2y(pc1) = hand2y(pc1) + 2 elbow2y(pc1) = elbow2y(pc1) + 2 nee2x(pc1) = 5 nee2y(pc1) = -1 foot2x(pc1) = 5 foot2y(pc1) = -1 END IF 'Detect Hit IF pticker%(pc1) = 9 AND foot2x(pc2) > l1x AND foot2x(pc2) < l2x AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN combol%(pc1) = 30 IF position%(po1) < 99 THEN health%(po1) = health%(po1) - lhpow%(pc1) * 2 soundticker% = 0: sbfx 11 ko(po1) = ko(po1) - lkpow%(pc1) * 2 particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 1, 5 position%(po1) = 1 IF nee1y(pc1) < 5 THEN fall po1 buttv(po1) = buttv(po1) - 5 ELSE fighterz(po1) = midstage + .5 END IF ELSE soundticker% = 0: sbfx 9 END IF END IF IF pticker%(pc1) > 9 THEN fighterfreeze (pc1) nee2h(pc1) = -1 nee2v(pc1) = 1 foot2h(pc1) = -2 foot2v(pc1) = 1 position%(pc1) = 1 END IF '------------------------------------------------------------------------ Nee CASE IS = 7 IF pticker%(pc1) = 1 THEN sbfx 3 fighterfreeze (pc1) buttx(pc1) = buttx(pc1) + d%(pc1) buttv(pc1) = buttv(pc1) - 2 nee1x(pc1) = 0 nee1y(pc1) = 6 foot1x(pc1) = -1 foot1y(pc1) = 5 nee2x(pc1) = 5 nee2y(pc1) = -4 elbow1x(pc1) = -2 elbow1y(pc1) = 3 elbow2x(pc1) = -2 elbow2y(pc1) = 3 'Momontary Pause / Detect hit IF pticker%(pc1) = 2 THEN fighterfreeze (pc1) IF nee2x(pc2) > l1x AND nee2x(pc2) < l2x AND nee2y(pc2) > h1y AND nee2y(pc2) < l2y THEN soundticker% = 0: sbfx 10 health%(po1) = health%(po1) - lhpow%(pc1) * 2 ko(po1) = ko(po1) - lkpow%(pc1) combol%(pc1) = 30 neckx(po1) = 2 heady(po1) = 2 position%(po1) = 1 IF buttx(pc1) > buttx(po1) THEN butth(po1) = butth(po1) - .3: particle (nee2x(pc2)), (nee2y(pc2)), (fighterz(pc1)), 3, 3 ELSE butth(po1) = butth(po1) + .3: particle (nee2x(pc2)), (nee2y(pc2)), (fighterz(pc1)), 4, 3 END IF END IF 'Return Position IF pticker%(pc1) > 3 THEN nee2v(pc1) = 1 position%(pc1) = 1 END IF '--------------------------------------------------------------- Fall Forward CASE IS = 8 IF pticker%(pc1) = 1 THEN buttv(pc1) = buttv(pc1) - 3 IF neckx(pc1) > 7 THEN neckh(pc1) = neckh(pc1) - .05 ELSE neckh(pc1) = neckh(pc1) + .1 IF headx(pc1) > 3 THEN headh(pc1) = headh(pc1) - .01 ELSE headh(pc1) = headh(pc1) + .1 elbow1h(pc1) = 0 elbow2h(pc1) = 0 hand1h(pc1) = 0 hand2h(pc1) = 0 IF nee1x(pc1) > -5 THEN nee1h(pc1) = nee1h(pc1) - .2 ELSE nee1h(pc1) = nee1h(pc1) + .1 IF nee2x(pc1) > -2 THEN nee2h(pc1) = nee2h(pc1) - .2 ELSE nee2h(pc1) = nee2h(pc1) + .1 IF foot1x(pc1) > -4 THEN foot1h(pc1) = foot1h(pc1) - .1 ELSE foot1h(pc1) = foot1h(pc1) + .05 IF foot2x(pc1) > -3 THEN foot2h(pc1) = foot2h(pc1) - .1 ELSE foot2h(pc1) = foot2h(pc1) + .05 IF necky(pc1) > -3 THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .05 IF heady(pc1) > 2 THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .05 IF elbow1y(pc2) > butty(pc1) THEN elbow1v(pc1) = elbow1v(pc1) - .1 ELSE elbow1v(pc1) = elbow1v(pc1) + .05 IF elbow2y(pc2) > butty(pc1) THEN elbow2v(pc1) = elbow2v(pc1) - .1 ELSE elbow2v(pc1) = elbow2v(pc1) + .05 IF hand1y(pc2) > butty(pc1) THEN hand1v(pc1) = hand1v(pc1) - .05 ELSE hand1v(pc1) = hand1v(pc1) + .05 IF hand2y(pc2) > butty(pc1) THEN hand2v(pc1) = hand2v(pc1) - .05 ELSE hand2v(pc1) = hand2v(pc1) + .05 nee1y(pc1) = 0 foot1y(pc1) = 0 nee2y(pc1) = 0 foot2y(pc1) = 0 fightergoo (pc1), 1.3 IF ABS(butth(pc1)) < .05 AND ABS(buttv(pc1)) < .1 AND pticker%(pc1) > sdelay%(pc1) AND necky(pc2) > butty(pc1) - 3 THEN fighterfreeze (pc1) IF ko(pc1) > 0 AND health%(pc1) > 0 THEN position%(pc1) = 9 neckx(pc1) = 3 necky(pc1) = -5 elbow1x(pc1) = 3 elbow1y(pc1) = 4 hand1x(pc1) = 2 hand1y(pc1) = 3 elbow2x(pc1) = 3 elbow2y(pc1) = 4 hand2x(pc1) = 2 hand2y(pc1) = 3 END IF END IF '------------------------------------------------------------------- Get Up 1 CASE IS = 9 IF heady(pc1) > -1 - droop THEN headv(pc1) = headv(pc1) - .1 ELSE headv(pc1) = headv(pc1) + .05 nee1h(pc1) = 1.5 neckh(pc1) = -.2 neckv(pc1) = -.4 fightergoo (pc1), 1.05 IF pticker%(pc1) > 5 THEN position%(pc1) = 1 headx(pc1) = 1 neckh(pc1) = 0 neckv(pc1) = 0 buttv(pc1) = -5 nee2x(pc1) = 2 foot1x(pc1) = 1 foot2x(pc1) = -2 nee1h(pc1) = 0 nee1y(pc1) = 0 nee2y(pc1) = 4 foot1y(pc1) = 4 foot2y(pc1) = 4 END IF '------------------------------------------------------------------ Fall Back CASE IS = 10 IF neckx(pc1) > -7 THEN neckh(pc1) = neckh(pc1) - .1 ELSE neckh(pc1) = neckh(pc1) + .05 IF headx(pc1) > -3 THEN headh(pc1) = headh(pc1) - .1 ELSE headh(pc1) = headh(pc1) + .01 elbow1h(pc1) = 0 elbow2h(pc1) = 0 hand1h(pc1) = 0 hand2h(pc1) = 0 IF nee1x(pc1) > 5 THEN nee1h(pc1) = nee1h(pc1) - .01 ELSE nee1h(pc1) = nee1h(pc1) + .1 IF nee2x(pc1) > 2 THEN nee2h(pc1) = nee2h(pc1) - .01 ELSE nee2h(pc1) = nee2h(pc1) + .1 IF foot1x(pc1) > 4 THEN foot1h(pc1) = foot1h(pc1) - .05 ELSE foot1h(pc1) = foot1h(pc1) + .1 IF foot2x(pc1) > 3 THEN foot2h(pc1) = foot2h(pc1) - .05 ELSE foot2h(pc1) = foot2h(pc1) + .1 IF necky(pc1) > 0 THEN neckv(pc1) = neckv(pc1) - .05 ELSE neckv(pc1) = neckv(pc1) + .1 IF heady(pc1) > -2 THEN headv(pc1) = headv(pc1) - .01 ELSE headv(pc1) = headv(pc1) + .01 IF elbow1y(pc1 + 2) > butty(pc1) THEN elbow1v(pc1) = elbow1v(pc1) - .1 ELSE elbow1v(pc1) = elbow1v(pc1) + .05 IF elbow2y(pc1 + 2) > butty(pc1) THEN elbow2v(pc1) = elbow2v(pc1) - .1 ELSE elbow2v(pc1) = elbow2v(pc1) + .05 IF hand1y(pc1 + 2) > butty(pc1) THEN hand1v(pc1) = hand1v(pc1) - .05 ELSE hand1v(pc1) = hand1v(pc1) + .05 IF hand2y(pc1 + 2) > butty(pc1) THEN hand2v(pc1) = hand2v(pc1) - .05 ELSE hand2v(pc1) = hand2v(pc1) + .05 IF nee1y(pc1) > -1 THEN nee1v(pc1) = nee1v(pc1) - .2 ELSE nee1v(pc1) = nee1v(pc1) + .05 IF foot1y(pc1) > 1 THEN foot1v(pc1) = foot1v(pc1) - .1 ELSE foot1v(pc1) = foot1v(pc1) + .1 IF nee2y(pc1) > -3 THEN nee2v(pc1) = nee2v(pc1) - .2 ELSE nee2v(pc1) = nee2v(pc1) + .05 IF foot2y(pc1) > 3 THEN foot2v(pc1) = foot2v(pc1) - .1 ELSE foot2v(pc1) = foot2v(pc1) + .1 fightergoo (pc1), 1.3 IF ABS(butth(pc1)) < .05 AND ABS(buttv(pc1)) < .1 AND pticker%(pc1) > sdelay%(pc1) AND necky(pc2) >= butty(pc1) THEN fighterfreeze (pc1) IF ko(pc1) > 0 AND health%(pc1) > 0 THEN position%(pc1) = 11 END IF '------------------------------------------------------------------- Get Up 2 CASE IS = 11 neckv(pc1) = neckv(pc1) + .005 IF nee1x(pc1) > -5 THEN nee1h(pc1) = nee1h(pc1) - .1 IF nee2x(pc1) > -5 THEN nee2h(pc1) = nee2h(pc1) - .1 IF foot1x(pc1) > 4 THEN foot1h(pc1) = foot1h(pc1) - .1 IF foot2x(pc1) > 4 THEN foot2h(pc1) = foot2h(pc1) - .1 IF nee1y(pc1) > -3 THEN nee1v(pc1) = nee1v(pc1) - .01 IF nee2y(pc1) > -3 THEN nee2v(pc1) = nee2v(pc1) - .01 IF foot1y(pc1) > -2 THEN foot1v(pc1) = foot1v(pc1) - .1 IF foot2y(pc1) > -2 THEN foot2v(pc1) = foot2v(pc1) - .1 fightergoo (pc1), 1.3 IF pticker%(pc1) > 25 THEN position%(pc1) = 1 headx(pc1) = 1 neckh(pc1) = 2 neckv(pc1) = -2 buttv(pc1) = -5 nee1x(pc1) = 5 nee2x(pc1) = 2 foot1x(pc1) = 1 foot2x(pc1) = -2 nee1y(pc1) = 0 nee2y(pc1) = 4 foot1y(pc1) = 4 foot2y(pc1) = 4 END IF '--------------------------------------------------------------------- Crouch CASE IS = 12 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) nee1y(pc1) = 0 nee2y(pc1) = 0 IF pticker%(pc1) > 15 THEN position%(pc1) = 1 END IF '------------------------------------------------------------------ Upper Cut CASE IS = 13 IF pticker%(pc1) = 1 THEN sbfx 4 fighterfreeze (pc1) elbow2x(pc1) = 3 elbow2y(pc1) = -5 hand2x(pc1) = 0 hand2y(pc1) = -4 elbow1x(pc1) = -3 elbow1y(pc1) = 5 hand1x(pc1) = 0 hand1y(pc1) = 4 headx(pc1) = 0 necky(pc1) = -10 neckx(pc1) = 1 IF legs%(pc1) <> 666 THEN nee1x(pc1) = 5 nee2x(pc1) = -1 foot1x(pc1) = -1 foot2x(pc1) = -3 END IF nee1y(pc1) = 8 nee2y(pc1) = 8 foot1y(pc1) = 7 foot2y(pc1) = 7 'Detect Hit IF pticker%(pc1) = 2 THEN IF hand2x(pc2) > m1x - 5 AND hand2x(pc2) < m2x + 5 AND hand2y(pc2) > h1y - 10 AND hand2y(pc2) < l2y THEN soundticker% = 0: sbfx 11 IF razers%(pc1) > 0 THEN n% = 10: bgcolor% = 12: soundticker% = 0: sbfx 17 health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 3) IF health%(po1) <= 0 THEN decap (po1) IF position%(po1) <> 99 THEN butth(po1) = d%(pc1) / 2 ko(po1) = ko(po1) - akpow%(pc1) * 3 necky(po1) = necky(po1) + 1 buttv(po1) = -(ahpow%(pc1) * 3) - 5 position%(po1) = 10 FOR wee = 1 TO 50 STEP 5: particle (hand2x(pc2) + ((RND - .5) * 5)), (butty(pc1) - wee), (fighterz(pc1)), 2, 1: NEXT wee ELSE particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 3 END IF END IF END IF IF pticker%(pc1) > 9 THEN position%(pc1) = 1 elbow2v(pc1) = 2 END IF '---------------------------------------------------------------- In-Air Kick CASE IS = 14 IF pticker%(pc1) = 1 THEN sbfx 3 fighterfreeze (pc1) neckx(pc1) = -5 nee1x(pc1) = -5 foot1x(pc1) = 5 nee1y(pc1) = 1 foot1y(pc1) = 1 elbow1x(pc1) = -4 elbow1y(pc1) = 2 hand1x(pc1) = 3 hand1y(pc1) = 1 elbow2x(pc1) = 4 elbow2y(pc1) = 2 nee2h(pc1) = 2 nee2v(pc1) = -2 foot2h(pc1) = -1 foot2v(pc1) = -2 END IF IF pticker%(pc1) = 3 THEN fighterfreeze (pc1) hand2y(pc1) = hand2y(pc1) + 2 elbow2y(pc1) = elbow2y(pc1) + 2 nee2x(pc1) = 5 nee2y(pc1) = 0 foot2x(pc1) = 5 foot2y(pc1) = 0 END IF IF pticker%(pc1) > 3 AND nee2x(pc2) > l1x - 5 AND nee2x(pc2) < l2x + 5 AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN soundticker% = 0: sbfx 10 health%(po1) = health%(po1) - lhpow%(pc1) * 3 ko(po1) = ko(po1) - lkpow%(pc1) * 2 particle (nee2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 1, 5 combol%(pc1) = 30 END IF IF pticker%(pc1) = 5 THEN fighterfreeze (pc1) neckh(pc1) = 1 nee1h(pc1) = 1 nee1v(pc1) = 1 foot1h(pc1) = -2 foot1v(pc1) = 1 nee2v(pc1) = 1 foot2h(pc1) = -2 foot2v(pc1) = 1 position%(pc1) = 1 END IF '--------------------------------------------------------------- Delayed Fall CASE IS = 15 fighterfreeze (pc1) IF pticker%(pc1) > sdelay%(pc1) * 2 THEN position%(pc1) = 8: buttv(pc1) = buttv(pc1) + 3 'SPECIALS ========================================================== SPECIALS` '-------------------------------------------------------------- One Fire Ball CASE IS = 30 fighterfreeze (pc1) IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2 IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2 IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2 IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2 IF elbow2x(pc1) > -5 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2 IF pticker%(pc1) > 3 THEN soundticker% = 0: sbfx 4 IF ko(pc1) > 5 THEN ko(pc1) = ko(pc1) - 3 IF pc1 = 2 THEN n% = 3 projectile%(1 + n%) = 25 projectilex(1 + n%) = hand1x(pc2) projectiley(1 + n%) = necky(pc2) projectileh(1 + n%) = d%(pc1) * 10 projectilev(1 + n%) = 0 projectilet%(1 + n%) = 2 position%(pc1) = 1 neckx(pc1) = 5 necky(pc1) = -6 elbow1x(pc1) = 5 hand1x(pc1) = 4 elbow1y(pc1) = 0 hand1y(pc1) = 0 butth(pc1) = butth(pc1) - (d%(pc1) / 2) ELSE position%(pc1) = 1 particle (hand1x(pc2)), (hand1y(pc2)), fighterz(pc1), 15, 20 END IF END IF x = (hand1x(pc2) + hand2x(pc2)) / 2 y = (hand1y(pc2) + hand2y(pc2)) / 2 pscircle (x), (y), (fighterz(pc1)), 1, flash3% psline (x), (y), (fighterz(pc1)), (x + ((RND - .5) * 75)), (y + ((RND - .5) * 75)), (fighterz(pc1)), 12, 0 '------------------------------------------------------------------ Power Jab CASE IS = 31 'Draw Back IF pticker%(pc1) < 6 THEN elbow1h(pc1) = -1 elbow1v(pc1) = -.5 hand1x(pc1) = 1 hand1y(pc1) = -1 END IF 'Jab IF pticker%(pc1) = 6 THEN IF ko(pc1) > 10 THEN ko(pc1) = ko(pc1) - 5 fighterfreeze (pc1) elbow1x(pc1) = 3 elbow1y(pc1) = 4 hand1x(pc1) = 3 hand1y(pc1) = -2 neckx(pc1) = 4 necky(pc1) = -7 neckv(pc1) = -.2 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF 'Detect hit IF pticker%(pc1) = 7 THEN fighterfreeze (pc1) IF hand1x(pc2) > m1x - 4 AND hand1x(pc2) < m2x + 4 AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN IF razers%(pc1) > 0 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 2, 10 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 10 n% = 10 bgcolor% = 15 soundticker% = 0: sbfx 17 ELSE bgcolor% = 4 soundticker% = 0: sbfx 11 END IF IF position%(po1) <> 99 THEN health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 2) ko(po1) = ko(po1) - akpow%(pc1) * 3 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 9, 10 position%(po1) = 1 ELSE ko(po1) = ko(po1) - akpow%(pc1) END IF particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 1, 10 heady(po1) = heady(po1) + 1 butty(po1) = butty(po1) - 10 END IF END IF 'Return Position IF pticker%(pc1) = 8 THEN position%(pc1) = 1 elbow1h(pc1) = -1 hand1v(pc1) = 1 END IF 'Effects IF pticker%(pc1) > 6 THEN psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 5), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 3), (fighterz(pc1)), (15), 3 END IF '------------------------------------------------------------------- Neck Jab CASE IS = 32 'Draw Back IF pticker%(pc1) < 6 THEN elbow1h(pc1) = -1 elbow1v(pc1) = -.5 hand1x(pc1) = 1 hand1y(pc1) = -1 END IF 'Jab IF pticker%(pc1) = 6 THEN IF ko(pc1) > 10 AND neckx(pc2) > m1x - 10 AND neckx(pc2) < m2x + 10 AND necky(pc2) > h1y - 7 THEN IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 ko(pc1) = ko(pc1) - 5 fighterfreeze (pc1) hand1x(pc1) = (neckx(po2) - neckx(pc2)) / (2 * d%(pc1)) elbow1x(pc1) = (neckx(po2) - neckx(pc2)) / (2 * d%(pc1)) hand1y(pc1) = -1 elbow1y(pc1) = -1 neckx(pc1) = 4 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF 'Detect hit IF pticker%(pc1) = 7 AND position%(po1) <> 99 THEN fighterfreeze (pc1) IF hand1x(pc2) > m1x - 2 AND hand1x(pc2) < m2x + 2 AND hand1y(pc2) > h1y - 1 AND hand1y(pc2) < h2y + 1 THEN IF razers%(pc1) > 0 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 2, 10 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 10 n% = 10 bgcolor% = 15 health%(po1) = health%(po1) - 50 IF health%(po1) < 50 THEN decap (po1) IF razers%(pc1) > 15 THEN razers%(pc1) = 15 soundticker% = 0: sbfx 17 ELSE bgcolor% = 4 soundticker% = 0: sbfx 1 END IF ko(po1) = ko(po1) - 10 position%(po1) = 15 fighterfreeze (po1) particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 9, 10 ELSE position%(pc1) = 1 END IF END IF 'Return Position IF pticker%(pc1) >= sdelay%(po1) + 5 THEN position%(pc1) = 1 elbow1h(pc1) = -3 elbow1v(pc1) = 2 END IF '------------------------------------------------------------- Ball Lightning CASE IS = 33 fighterfreeze (pc1) IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2 IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2 IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2 IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2 IF elbow2x(pc1) > -6 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2 IF pticker%(pc1) > sdelay%(pc1) AND projectile%(1 * pc1) = 0 THEN IF pc1 = 2 THEN n% = 3 IF ko(pc1) > 5 THEN soundticker% = 0: sbfx 6 ko(pc1) = ko(pc1) - 5 projectile%(1 + n%) = 50 projectilex(1 + n%) = hand1x(pc2) projectiley(1 + n%) = necky(pc2) projectileh(1 + n%) = d%(pc1) * 10 projectilev(1 + n%) = 0 projectilet%(1 + n%) = 1 position%(pc1) = 1 neckx(pc1) = 5 necky(pc1) = -6 elbow1x(pc1) = 5 hand1x(pc1) = 4 elbow1y(pc1) = 0 hand1y(pc1) = 0 elbow2x(pc1) = 5 hand2x(pc1) = 4 elbow2y(pc1) = 0 hand2y(pc1) = 0 butth(pc1) = butth(pc1) - d%(pc1) bgcolor% = 1 ELSE position%(pc1) = 1 particle (hand1x(pc2)), (hand1y(pc2)), fighterz(pc1), 15, 20 END IF END IF x = (hand1x(pc2) + hand2x(pc2)) / 2 y = (hand1y(pc2) + hand2y(pc2)) / 2 'Effects sbfx 13 psline (x), (y), (fighterz(pc1)), (x - (RND * 75)), (y + ((RND - .5) * 150)), (fighterz(pc1)), 15, 0 psline (x), (y), (fighterz(pc1)), (x + (RND * 75)), (y + ((RND - .5) * 150)), (fighterz(pc1)), 15, 0 pslightning (x), (y), (fighterz(pc1)), (x - (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 50, (flash2%) pslightning (x), (y), (fighterz(pc1)), (x + (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 30, (flash2%) pscircle (x), (y), (fighterz(pc1)), RND * 2, flash2% pscircle (x), (y), (fighterz(pc1)), 1, 15 '------------------------------------------------------------ Triple Sheroken CASE IS = 34 IF pc1 = 2 THEN n% = 3 FOR wee = 1 TO 3 IF pc1 = 2 THEN n% = 3 projectile%(wee + n%) = 15 projectilex(wee + n%) = hand1x(pc2) projectiley(wee + n%) = necky(pc2) projectileh(wee + n%) = (d%(pc1) * (8 * (RND + 1))) projectilev(wee + n%) = (RND - .5) * 20 projectilet%(wee + n%) = 4 NEXT wee position%(pc1) = 1 soundticker% = 0: sbfx 13 elbow2x(pc1) = 3 elbow2y(pc1) = 2 '------------------------------------------------------------- Two Fire Balls CASE IS = 35 fighterfreeze (pc1) IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2 IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2 IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2 IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2 IF elbow2x(pc1) > -5 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2 IF pticker%(pc1) > 3 THEN soundticker% = 0: sbfx 4 IF pc1 = 2 THEN n% = 3 FOR wee = 2 TO 3 projectile%(wee + n%) = 25 projectilex(wee + n%) = hand1x(pc2) projectiley(wee + n%) = necky(pc2) projectilev(wee + n%) = (RND - .5) * 10 projectileh(wee + n%) = (d%(pc1) * 10) projectilet%(wee + n%) = 3 NEXT wee position%(pc1) = 1 neckx(pc1) = 5 necky(pc1) = -6 elbow1x(pc1) = 5 hand1x(pc1) = 4 elbow1y(pc1) = 0 hand1y(pc1) = 0 elbow2x(pc1) = 5 hand2x(pc1) = 4 elbow2y(pc1) = 0 hand2y(pc1) = 0 butth(pc1) = butth(pc1) - (d%(pc1) / 2) END IF x = (hand1x(pc2) + hand2x(pc2)) / 2 y = (hand1y(pc2) + hand2y(pc2)) / 2 pscircle (x), (y), (fighterz(pc1)), 1, flash3% psline (x), (y), (fighterz(pc1)), (x + ((RND - .5) * 75)), (y + ((RND - .5) * 75)), (fighterz(pc1)), 12, 0 '--------------------------------------------------------------- Hammer Punch CASE IS = 36 'Draw Up IF pticker%(pc1) < 8 THEN elbow2h(pc1) = 0 elbow2v(pc1) = -1.5 hand2x(pc1) = 3 hand2y(pc1) = -2 neckh(pc1) = -.3 END IF 'Hammer IF pticker%(pc1) = 8 THEN IF ko(pc1) > 10 THEN IF body%(pc1) = 666 THEN rage(pc1) = 0 ko(pc1) = ko(pc1) - 5 fighterfreeze (pc1) elbow2x(pc1) = 3 elbow2y(pc1) = 5 hand2x(pc1) = 4 hand2y(pc1) = 0 neckx(pc1) = 4 necky(pc1) = -7 neckv(pc1) = -.2 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF 'Detect hit IF pticker%(pc1) = 9 THEN fighterfreeze (pc1) IF hand2x(pc2) > m1x - 4 AND hand2x(pc2) < m2x + 4 AND hand2y(pc2) > h1y AND hand2y(pc2) < l2y THEN IF razers%(pc1) > 0 THEN n% = 10 bgcolor% = 15 ELSE bgcolor% = 4 END IF IF position%(po1) <> 99 THEN health%(po1) = health%(po1) - ((ahpow%(pc1) + n%) * 3) ko(po1) = ko(po1) - akpow%(pc1) * 2 buttv(po1) = 2 neckh(po1) = -d%(pc1) necky(po1) = necky(po1) + 3 heady(po1) = 4 position%(po1) = 8 IF body%(pc1) = 666 THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 21, 5: health%(po1) = health%(po1) - 50 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 5 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 5 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 9, 5 END IF END IF 'Return Position IF pticker%(pc1) = 10 THEN position%(pc1) = 1 elbow2h(pc1) = -1 hand2v(pc1) = 1 END IF 'Effects IF pticker%(pc1) > 8 THEN psline (neckx(pc2) + (7 * d%(pc1))), (necky(pc2) + 5), (fighterz(pc1)), (neckx(pc2) + (4 * d%(pc1))), (necky(pc2) - 7), (fighterz(pc1)), (15), 3 psline (neckx(pc2) + (5 * d%(pc1))), (necky(pc2) - 3), (fighterz(pc1)), (neckx(pc2) - (4 * d%(pc1))), (necky(pc2) - 10), (fighterz(pc1)), (15), 3 END IF '---------------------------------------------------------------- Thrust Slam CASE IS = 37 'Draw Back IF pticker%(pc1) < 6 THEN elbow1h(pc1) = -1 elbow1v(pc1) = -.5 hand1x(pc1) = 1 hand1y(pc1) = -1 END IF 'Jab IF pticker%(pc1) = 6 THEN IF ko(pc1) > 10 THEN ko(pc1) = ko(pc1) - 5 fighterfreeze (pc1) elbow1x(pc1) = 3 elbow1y(pc1) = 6 hand1x(pc1) = 4 hand1y(pc1) = 0 neckx(pc1) = 4 necky(pc1) = -7 neckv(pc1) = -.2 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF elbow2x(pc1) = elbow1x(pc1) elbow2y(pc1) = elbow1y(pc1) - 4 hand2x(pc1) = hand1x(pc1) hand2y(pc1) = hand1y(pc1) 'Detect hit IF pticker%(pc1) = 7 THEN fighterfreeze (pc1) IF hand1x(pc2) > m1x - 4 AND hand1x(pc2) < m2x + 4 AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN IF razers%(pc1) > 0 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 23, 20 health%(po1) = health%(po1) - 25 bgcolor% = 15 soundticker% = 0: sbfx 17 ELSE bgcolor% = 1 sbfx 11 END IF IF position%(po1) <> 99 THEN ko(po1) = ko(po1) - akpow%(pc1) * 3 canjump%(po1) = 0 butth(po1) = d%(pc1) * (akpow%(pc1) * 2) position%(po1) = 15 ELSE canjump%(pc1) = 0 butth(pc1) = -d%(pc1) * (akpow%(pc1) * 1.5) position%(pc1) = 1 END IF particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 22, 10 END IF END IF 'Return Position IF pticker%(pc1) >= 12 THEN position%(pc1) = 1 elbow1h(pc1) = -1 hand1v(pc1) = 1 END IF 'Effects IF pticker%(pc1) > 6 AND pticker%(pc1) < 8 THEN psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 2), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 3), (fighterz(pc1)), (15), 3 psline (neckx(pc2) - (8 * d%(pc1))), (necky(pc2) + 7), (fighterz(pc1)), (neckx(pc2) + (6 * d%(pc1))), (necky(pc2) + 6), (fighterz(pc1)), (15), 3 END IF '-------------------------------------------------------------- Rising Dragon CASE IS = 38 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) neckx(pc1) = 5 necky(pc1) = -5 elbow2x(pc1) = 1 elbow1x(pc1) = -3 elbow1y(pc1) = 5 hand1x(pc1) = 0 hand1y(pc1) = 4 nee1x(pc1) = 4 foot1x(pc1) = -1 nee1y(pc1) = 1 foot1y(pc1) = 7 nee1v(pc1) = -.5 END IF IF pticker%(pc1) > 1 AND buttv(pc1) <= 0 THEN IF neckx(pc1) > 0 THEN neckh(pc1) = -2 ELSE neckx(pc1) = 0: neckh(pc1) = 0 nee2x(pc1) = 0 foot2x(pc1) = -1 nee2y(pc1) = 8 foot2y(pc1) = 7 headx(pc1) = 0 elbow2x(pc1) = 3 hand2x(pc1) = 0 hand2y(pc1) = -3 IF elbow2y(pc1) > -5 THEN elbow2v(pc1) = -2 ELSE elbow2v(pc1) = 0 butth(pc1) = butth(pc1) / 1.5 END IF IF pticker%(pc1) = 4 THEN canjump%(pc1) = 1 jump (pc1), (1) butth(pc1) = d%(pc1) * 5 END IF 'Detect Hit(s) IF pticker%(pc1) = 4 OR pticker%(pc1) = 7 OR pticker%(pc1) = 9 OR pticker%(pc1) = 12 OR pticker%(pc1) = 15 THEN IF ko(pc1) < 5 THEN fall (pc1) butth(pc1) = 0 buttv(pc1) = 0 ELSE ko(pc1) = ko(pc1) - 1 IF hand2x(pc2) > m1x - 7 AND hand2x(pc2) < m2x + 7 AND hand2y(pc2) > h1y - 10 AND hand2y(pc2) < l2y + 10 THEN IF position%(po1) = 99 THEN pticker%(po1) = 1 ELSE soundticker% = 0: sbfx 11 IF razers%(pc1) > 0 THEN n% = 10: bgcolor% = 4: particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 21, 15: soundticker% = 0: sbfx 17 health%(po1) = health%(po1) - (ahpow%(pc1) + n%) position%(po1) = 10 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 2, 5 ko(po1) = ko(po1) - (akpow%(pc1) * 2) END IF IF health%(po1) <= 0 THEN decap (po1) butth(pc1) = d%(pc1) / 3 buttv(po1) = buttv(pc1) - 1 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 5 IF pticker%(pc1) = 15 THEN IF position%(po1) <> 99 THEN fall (po1) ELSE butth(po1) = butth(po1) - d%(po1) END IF END IF END IF 'Effects particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 19, 1 psline (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), (hand2x(pc2) - (butth(pc1) * 5)), (hand2y(pc2) - (buttv(pc1) * 5)), (fighterz(pc1)), flash1%, 0 'Return Position IF pticker%(pc1) >= 15 THEN position%(pc1) = 1 nee1v(pc1) = 2 END IF '--------------------------------------------------------------- Stun Knuckle CASE IS = 39 'Draw Back IF pticker%(pc1) < 6 THEN elbow1h(pc1) = -1 elbow1v(pc1) = -.5 hand1x(pc1) = 1 hand1y(pc1) = -1 END IF 'Stun Knuckle IF pticker%(pc1) = 6 THEN IF ko(pc1) > 6 THEN ko(pc1) = ko(pc1) - 4 fighterfreeze (pc1) hand1x(pc1) = 4 elbow1x(pc1) = 4 hand1y(pc1) = 1 elbow1y(pc1) = -1 neckx(pc1) = 4 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF 'Detect hit IF pticker%(pc1) = 7 THEN fighterfreeze (pc1) IF hand1x(pc2) > m1x - 2 AND hand1x(pc2) < m2x + 2 AND hand1y(pc2) > h1y - 4 AND hand1y(pc2) < l2y THEN IF razers%(pc1) > 0 THEN n% = 10 bgcolor% = 12 health%(po1) = health%(po1) - (ahpow%(pc1) * 5) ELSE bgcolor% = 4 END IF IF position%(po1) <> 99 THEN ko(po1) = ko(po1) - (akpow%(pc1) * 4) position%(po1) = 15 fighterfreeze (po1) particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 6, 10 sbfx 8 ELSE bgcolor% = 0 END IF ELSE position%(pc1) = 1 END IF END IF 'Return Position IF pticker%(pc1) >= 8 THEN position%(pc1) = 1 elbow1x(pc1) = 2 END IF 'Effects IF pticker%(pc1) > 4 THEN pscircle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .1), 2, flash1% pscircle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .1), 1, flash2% END IF '----------------------------------------------------------------- Plant Kick CASE IS = 40 IF pticker%(pc1) = 1 THEN IF canjump%(pc1) = 1 THEN fighterfreeze (pc1) nee1y(pc1) = -2 nee2y(pc1) = 0 hand2h(pc1) = -1 hand2v(pc1) = 1 ELSE position%(pc1) = 1 END IF END IF IF pticker%(pc1) = 4 THEN IF ko(pc1) > 10 THEN ko(pc1) = ko(pc1) - 10 sbfx 4 ELSE fighterfreeze (pc1) position%(pc1) = 1 END IF END IF IF pticker%(pc1) > 3 THEN psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + RND * 5), (fighterz(pc1)), (flash1%), 0 psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + RND * 5), (fighterz(pc1)), (flash2%), 0 END IF IF pticker%(pc1) = 5 THEN IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 fighterfreeze (pc1) headx(pc1) = headx(pc1) - 2 IF foot1y(pc1) > foot2y(pc1) THEN elbow2y(pc1) = foot1y(pc1) / 2 ELSE elbow2y(pc1) = foot2y(pc1) / 2 hand2y(pc1) = elbow2y(pc1) + 1 elbow1x(pc1) = 1 elbow1y(pc1) = -6 hand1x(pc1) = 5 hand1y(pc1) = -2 elbow2x(pc1) = -3 hand2x(pc1) = -2 buttx(pc1) = buttx(pc1) + 7 * d%(pc1) butty(pc1) = butty(pc1) - (elbow2y(pc1) * 2) neckx(pc1) = -7 necky(pc1) = 7 nee1x(pc1) = 5 nee1y(pc1) = -7 foot1x(pc1) = 5 foot1y(pc1) = -6 nee2x(pc1) = 0 nee2y(pc1) = 5 foot2x(pc1) = 5 foot2y(pc1) = -6 END IF 'Detect Hit IF pticker%(pc1) = 6 AND buttx(pc1) > neckx(po2) - 13 AND buttx(pc1) < neckx(po2) + 13 AND heady(po2) - 4 < foot2y(pc2) AND foot2y(pc2) < l2y THEN IF position%(po1) <> 99 THEN soundticker% = 0: sbfx 11 health%(po1) = health%(po1) - lhpow%(pc1) * 2 ko(po1) = ko(po1) - lkpow%(pc1) * 7 particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 1, 5 fall (po1) END IF buttv(po1) = -10 butth(po1) = (1 + lhpow%(pc1) * d%(pc1)) particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 5, 8 END IF 'return position IF pticker%(pc1) >= 12 THEN position%(pc1) = 1 nee2y(pc1) = hand2y(pc1) foot2y(pc1) = hand2y(pc1) foot2h(pc1) = -2 neckh(pc1) = 2 neckv(pc1) = -3 elbow1h(pc1) = -1 elbow1v(pc1) = 1 nee1v(pc1) = 1 foot1h(pc1) = -2 foot1v(pc1) = 2 hand2h(pc1) = .5 END IF 'Zero G IF pticker%(pc1) > 4 THEN buttv(pc1) = -gravity '------------------------------------------------------------------- Axe Kick CASE IS = 41 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) IF ko(pc1) > 10 AND canjump%(pc1) = 1 THEN ko(pc1) = ko(pc1) - 5 butth(pc1) = d%(pc1) sbfx 2 neckh(pc1) = -1 ELSE position%(pc1) = 1 END IF END IF SELECT CASE pticker%(pc1) CASE 2 sbfx 2 nee2x(pc1) = 1 foot2x(pc1) = -1 neckx(pc1) = -1 foot1v(pc1) = 3 nee1x(pc1) = 3 nee1y(pc1) = -6 foot1x(pc1) = 3 foot1y(pc1) = -6 CASE 4 neckh(pc1) = 0 nee1x(pc1) = 6 nee1y(pc1) = -1 foot1x(pc1) = 6 foot1y(pc1) = -1 CASE 6 foot1v(pc1) = 0 nee1x(pc1) = 5 nee1y(pc1) = 5 foot1x(pc1) = 5 foot1y(pc1) = 5 END SELECT 'Detect Hit IF pticker%(pc1) > 2 AND pticker%(pc1) < 7 THEN IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN soundticker% = 0: sbfx 11 health%(po1) = health%(po1) - lhpow%(pc1) ko(po1) = ko(po1) - lkpow%(pc1) particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 1, 5 butth(po1) = butth(pc1) position%(po1) = 1 END IF END IF 'Return Position IF pticker%(pc1) = 7 THEN foot1x(pc1) = -1 position%(pc1) = 1 END IF 'Effects particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 19, 1 '---------------------------------------------------------- Stunning Gut Stab CASE IS = 42 IF pticker%(pc1) = 1 THEN d%(pc1) = -d%(pc1) sbfx 3 IF ko(pc1) > 10 THEN ko(pc1) = ko(pc1) - 5 ELSE position%(pc1) = 1 END IF END IF IF pticker%(pc1) > 1 AND pticker%(pc1) < 8 THEN nee1x(pc1) = -6 nee1y(pc1) = -1 foot1x(pc1) = -6 foot1y(pc1) = -1 nee2x(pc1) = 0 foot2x(pc1) = 0 END IF IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN sbfx 11 health%(po1) = health%(po1) - 1 ko(po1) = ko(po1) - 1 IF buttx(pc1) < buttx(po1) THEN particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (foot1x(pc2) - 5), (foot1y(pc2)), (fighterz(pc1)), 3, 3 position%(po1) = 15 END IF IF pticker%(pc1) = 8 THEN nee1h(pc1) = 1 nee1v(pc1) = .5 neckx(pc1) = .5 END IF 'Return Position IF pticker%(pc1) = 15 THEN d%(pc1) = -d%(pc1) position%(pc1) = 1 sbfx 1 END IF '---------------------------------------------------------- Thrust Roundhouse CASE IS = 43 'Draw Back IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) combo%(pc1) = 0 IF ko(pc1) > 10 THEN butth(pc1) = butth(pc1) + (d%(pc1) * 3) buttv(pc1) = buttv(pc1) - 1.5 END IF elbow1y(pc1) = elbow1y(pc1) - 4 elbow2y(pc1) = elbow2y(pc1) - 4 neckx(pc1) = 5 necky(pc1) = -5 buttx(pc1) = buttx(pc1) + (d%(pc1) * 2) nee1x(pc1) = 5 nee1y(pc1) = 4 foot1x(pc1) = -4 foot1y(pc1) = 3 END IF 'Begin Kick IF pticker%(pc1) = 5 THEN IF ko(pc1) > 10 THEN ko(pc1) = ko(pc1) - 6 nee2h(pc1) = 2 nee2v(pc1) = -2 foot2h(pc1) = -1 foot2v(pc1) = -1 ELSE position%(pc1) = 1 END IF END IF IF pticker%(pc1) = 8 THEN fighterfreeze (pc1) elbow1x(pc1) = elbow1x(pc1) + 2 hand2y(pc1) = hand2y(pc1) + 2 elbow2y(pc1) = elbow2y(pc1) + 2 nee2x(pc1) = 6 nee2y(pc1) = 1 foot2x(pc1) = 5 foot2y(pc1) = 1 END IF 'Detect Hit IF pticker%(pc1) > 7 AND combo%(pc1) = 0 AND foot2x(pc2) > l1x AND foot2x(pc2) < l2x AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN health%(po1) = health%(po1) - lhpow%(pc1) * 3 ko(po1) = ko(po1) - lkpow%(pc1) * 4 particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 3, 5 particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 4, 5 soundticker% = 0: sbfx 11 butth(po1) = butth(pc1) / 2 fall po1 END IF IF pticker%(pc1) > 9 THEN fighterfreeze (pc1) nee2h(pc1) = -1 nee2v(pc1) = 1 foot2h(pc1) = -2 foot2v(pc1) = 1 position%(pc1) = 1 END IF 'Zero G buttv(pc1) = buttv(pc1) - gravity 'Effects particle (foot2x(pc2)), (foot2y(pc2)), (fighterz(pc1)), 19, 1 '------------------------------------------------------------- Slasher Strike CASE IS = 44 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) neckx(pc1) = 0 neckh(pc1) = -.5 buttx(pc1) = buttx(pc1) + (d%(pc1) * 2) nee1x(pc1) = 0 foot1x(pc1) = 0 IF foot1y(pc1) < 1 OR nee1y(pc1) > 3 THEN nee1y(pc1) = 8 foot1y(pc1) = 7 END IF elbow1h(pc1) = -.5 elbow2h(pc1) = .5 elbow2v(pc1) = -.5 END IF IF pticker%(pc1) = 5 THEN IF ko(pc1) > 20 THEN ko(pc1) = ko(pc1) - 15 nee2h(pc1) = 2 nee2v(pc1) = -2 foot2h(pc1) = -1 foot2v(pc1) = -1 ELSE position%(pc1) = 10 END IF END IF IF pticker%(pc1) = 8 THEN sbfx 4 fighterfreeze (pc1) elbow1x(pc1) = elbow1x(pc1) + 2 elbow1y(pc1) = elbow1y(pc1) - 2 hand2y(pc1) = hand2y(pc1) + 2 elbow2y(pc1) = elbow2y(pc1) + 2 nee2x(pc1) = 5 nee2y(pc1) = 0 foot2x(pc1) = 5 foot2y(pc1) = 0 END IF 'Slash Effect IF pticker%(pc1) > 8 THEN psline (foot2x(pc2) - 15), (foot2y(pc2)), (fighterz(pc1)), (foot2x(pc2) + 15), (foot2y(pc2)), (fighterz(pc1)), (flash2%), 0 END IF 'Detect Hit IF pticker%(pc1) = 9 AND foot2x(pc2) > l1x - 10 AND foot2x(pc2) < l2x + 10 AND foot2y(pc2) > h1y AND foot2y(pc2) < l2y THEN psline (buttx(po1) - 100), (foot2y(pc2)), (fighterz(pc1)), (buttx(po1) + 100), (foot2y(pc2)), (fighterz(pc1)), (15), 0 health%(po1) = health%(po1) - lhpow%(pc1) * 4 soundticker% = 0: sbfx 17 ko(po1) = ko(po1) - lkpow%(pc1) * 4 particle (buttx(po1)), (foot2y(pc2)), (fighterz(pc1)), 21, 10 position%(po1) = 15 END IF IF pticker%(pc1) > 9 THEN fighterfreeze (pc1) neckh(pc1) = .5 nee2h(pc1) = -1 nee2v(pc1) = 1 foot2h(pc1) = -2 foot2v(pc1) = 1 position%(pc1) = 1 END IF 'Effects psline (foot2x(pc2) - 1), (foot2y(pc2)), (fighterz(pc1) - .1), (foot2x(pc2) + 1), (foot2y(pc2)), (fighterz(pc1) - .1), (flash2%), 0 '------------------------------------------------------------------- Nee Bash CASE IS = 45 'Attempt head grab IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) elbow1x(pc1) = 3 elbow1y(pc1) = -1 hand1x(pc1) = 3 hand1y(pc1) = -2 END IF 'Detect head grab IF pticker%(pc1) = 2 THEN IF position%(po1) <> 99 AND ko(pc1) > 15 AND hand1x(pc2) > h1x AND hand1x(pc2) < h2x AND hand1y(pc2) > h1y AND hand1y(pc2) < h2y THEN sbfx 13 ko(pc1) = ko(pc1) - 10 combol%(pc1) = sdelay%(po1) * 3 fighterfreeze (po1) ELSE position%(pc1) = 1 END IF END IF 'Bashing IF pticker%(pc1) > 2 THEN position%(po1) = 1 elbow1v(pc1) = -.6 hand1v(pc1) = -.8 'hit IF elbow1y(pc1) < -2 THEN elbow1y(pc1) = 4: hand1y(pc1) = 5 health%(po1) = health%(po1) - ahpow%(pc1) ko(po1) = ko(po1) - akpow%(pc1) health%(po1) = health%(po1) - lhpow%(pc1) ko(po1) = ko(po1) - lkpow%(pc1) soundticker% = 0: sbfx 9 IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (butty(pc1)), (fighterz(po1)), 3, 3 ELSE particle (hand1x(pc2)), (butty(pc1)), (fighterz(po1)), 4, 3 END IF elbow2y(pc1) = 3 - elbow1y(pc1) / 2 necky(pc1) = -10 + elbow1y(pc1) / 5 nee2x(pc1) = elbow1y(pc1) + 2 nee2y(pc1) = -elbow1y(pc1) neckx(po1) = nee2x(pc1) necky(po1) = -7 + elbow1y(pc1) + hand1y(pc1) 'Return position IF combol%(pc1) <= 0 THEN position%(pc1) = 1 butth(pc1) = -d%(pc1) elbow1h(pc1) = -.5 elbow1y(pc1) = .5 END IF END IF '------------------------------------------------------- Lightning Kick Blast CASE IS = 46 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) END IF IF pticker%(pc1) < 10 THEN sbfx 16 neckx(pc1) = -3 - RND necky(pc1) = -7 + RND r1 = (RND * 3) + 2 r2 = (RND - .5) * 15 nee1x(pc1) = r1 nee1y(pc1) = r2 foot1x(pc1) = r1 foot1y(pc1) = r2 'Detect Hit(s) IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN ko(po1) = ko(po1) - lkpow%(pc1) position%(po1) = 1 particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 9, 5 END IF END IF IF pticker%(pc1) = 10 THEN soundticker% = 0: sbfx 11 d%(pc1) = -d%(pc1) neckx(pc1) = 5 necky(pc1) = -2 nee1x(pc1) = -6 nee1y(pc1) = 0 foot1x(pc1) = -6 foot1y(pc1) = 0 END IF 'Detect Blast IF pticker%(pc1) = 11 AND foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN health%(po1) = health%(po1) - lhpow%(pc1) * 5 ko(po1) = ko(po1) - lkpow%(pc1) * 2 particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 1, 5 butth(po1) = (lkpow%(pc1) * -d%(pc1)) neckx(po1) = 5 necky(po1) = -5 nee1x(po1) = 5 foot1x(po1) = 5 fall (po1) END IF 'Effects IF pticker%(pc1) > 9 THEN psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + (RND - .5) * 8), (fighterz(pc1)), (flash1%), 0 psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (neckx(pc2) + ((RND - .5) * 5)), (butty(pc1) + (RND - .5) * 5), (fighterz(pc1)), (flash2%), 0 END IF 'Return position IF pticker%(pc1) = 13 THEN position%(pc1) = 1 END IF '--------------------------------------------------------------------- 6-Slip CASE IS = 47 IF ko(pc1) < 15 THEN position%(pc1) = 1 IF pticker%(pc1) = 1 THEN ds%(pc1) = d%(pc1): ds%(po1) = d%(po1) IF pticker%(pc1) < 5 THEN fighterz(pc1) = fighterz(pc1) - .1 butth(pc1) = d%(pc1) * 2 IF buttx(pc1) > buttx(po1) - 10 AND buttx(pc1) < buttx(po1) + 10 AND canjump%(po1) = 1 THEN d%(po1) = ds%(po1) pticker%(po1) = 0 END IF 'return position IF pticker%(pc1) = 8 THEN position%(pc1) = 1: d%(pc1) = -ds%(pc1): ko(pc1) = ko(pc1) - 5 '------------------------------------------------------------------ Skip Kick CASE IS = 48 IF pticker%(pc1) = 1 THEN sbfx 3 IF ko(pc1) > 10 AND canjump%(pc1) = 1 THEN ko(pc1) = ko(pc1) - 5 buttv(pc1) = -5 butth(pc1) = d%(pc1) * 2 ELSE position%(pc1) = 1 END IF END IF IF pticker%(pc1) = 9 THEN d%(pc1) = -d%(pc1) IF pticker%(pc1) > 10 AND pticker%(pc1) < 13 THEN nee1x(pc1) = -6 nee1y(pc1) = -1 foot1x(pc1) = -6 foot1y(pc1) = -1 nee2x(pc1) = 0 foot2x(pc1) = 0 END IF 'Detect Hit IF pticker%(pc1) > 9 AND pticker%(pc1) < 13 THEN IF foot1x(pc2) > l1x AND foot1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN sbfx 11 health%(po1) = health%(po1) - akpow%(pc1) * 3 ko(po1) = ko(po1) - lkpow%(pc1) * 3 IF buttx(pc1) < buttx(po1) THEN particle (foot1x(pc2) + 5), (foot1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (foot1x(pc2) - 5), (foot1y(pc2)), (fighterz(pc1)), 3, 3 butth(po1) = butth(pc1) END IF END IF IF pticker%(pc1) = 13 THEN nee1h(pc1) = 1 nee1v(pc1) = .5 neckx(pc1) = .5 END IF 'Return Position IF pticker%(pc1) = 18 THEN d%(pc1) = -d%(pc1) position%(pc1) = 1 sbfx 1 END IF '-------------------------------------------------------------- Upper Assault CASE IS = 49 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) neckx(pc1) = 5 necky(pc1) = -5 elbow2x(pc1) = 1 elbow1x(pc1) = -3 elbow1y(pc1) = 5 hand1x(pc1) = 0 hand1y(pc1) = 4 nee1x(pc1) = 4 foot1x(pc1) = -1 nee1y(pc1) = 1 foot1y(pc1) = 7 nee1v(pc1) = -.5 nee2x(pc1) = 4 nee2v(pc1) = -.5 END IF IF pticker%(pc1) > 1 AND buttv(pc1) <= 0 THEN IF neckx(pc1) > 0 THEN neckh(pc1) = -2 ELSE neckx(pc1) = 0: neckh(pc1) = 0 nee2x(pc1) = 0 foot2x(pc1) = -1 nee2y(pc1) = 8 foot2y(pc1) = 7 nee1x(pc1) = 2 nee1y(pc1) = -4 foot1x(pc1) = 2 foot1y(pc1) = -5 headx(pc1) = 0 elbow1x(pc1) = -1 elbow2x(pc1) = -1 elbow1y(pc1) = 3 elbow2y(pc1) = 3 hand1x(pc1) = 2 hand2x(pc1) = 2 hand1y(pc1) = 3 hand2y(pc1) = 3 butth(pc1) = butth(pc1) / 1.5 END IF IF pticker%(pc1) = 4 THEN canjump%(pc1) = 1 jump (pc1), (1) butth(pc1) = d%(pc1) * 5 END IF 'Detect Hit(s) IF pticker%(pc1) = 4 OR pticker%(pc1) = 7 OR pticker%(pc1) = 9 OR pticker%(pc1) = 12 OR pticker%(pc1) = 15 THEN IF ko(pc1) < 5 THEN fall (pc1) butth(pc1) = 0 buttv(pc1) = 0 ELSE ko(pc1) = ko(pc1) - 1 IF foot1x(pc2) > m1x - 7 AND foot1x(pc2) < m2x + 7 AND foot1y(pc2) > h1y - 10 AND foot1y(pc2) < l2y + 10 THEN IF position%(po1) = 99 THEN pticker%(po1) = 1 ELSE soundticker% = 0: sbfx 11 position%(po1) = 10 particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 2, 5 ko(po1) = ko(po1) - (lkpow%(pc1) * 2) health%(po1) = health%(po1) - (lhpow%(pc1) + n%) END IF butth(pc1) = d%(pc1) / 3 buttv(po1) = buttv(pc1) - 1 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 6, 5 IF pticker%(pc1) = 15 THEN IF position%(po1) <> 99 THEN fall (po1) ELSE butth(po1) = butth(po1) - d%(po1) END IF END IF END IF 'Effects particle (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), 19, 1 psline (foot1x(pc2)), (foot1y(pc2)), (fighterz(pc1)), (foot1x(pc2) - (butth(pc1) * 5)), (foot1y(pc2) - (buttv(pc1) * 5)), (fighterz(pc1)), flash1%, 0 'Return Position IF pticker%(pc1) = 15 THEN position%(pc1) = 1 nee1v(pc1) = 2 END IF 'SUPERS ============================================================== SUPERS` '---------------------------------------------------------------- Vex of Evil CASE IS = 81 IF pticker%(pc1) = 1 THEN IF canjump%(pc1) = 1 THEN fighterfreeze (pc1) hand1h(pc1) = (RND - .5) / 10 hand1v(pc1) = (RND - .5) / 10 hand2h(pc1) = (RND - .5) / 10 hand2v(pc1) = (RND - .5) / 10 elbow1h(pc1) = (RND - .5) / 10 elbow1v(pc1) = (RND - .5) / 10 elbow2h(pc1) = (RND - .5) / 10 elbow2v(pc1) = (RND - .5) / 10 ELSE position%(pc1) = 1 END IF END IF rage(pc1) = rage(pc1) - 1.5 IF pticker%(pc1) < 40 THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 19, 1 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 19, 1 END IF IF elbow1x(pc1) > 1 THEN elbow1h(pc1) = elbow1h(pc1) - .2 ELSE elbow1h(pc1) = elbow1h(pc1) + .2 IF elbow1y(pc1) > 4 THEN elbow1v(pc1) = elbow1v(pc1) - .2 ELSE elbow1v(pc1) = elbow1v(pc1) + .2 IF elbow2x(pc1) > 1 THEN elbow2h(pc1) = elbow2h(pc1) - .2 ELSE elbow2h(pc1) = elbow2h(pc1) + .2 IF elbow2y(pc1) > 4 THEN elbow2v(pc1) = elbow2v(pc1) - .2 ELSE elbow2v(pc1) = elbow2v(pc1) + .2 IF hand1x(pc1) > 1 THEN hand1h(pc1) = hand1h(pc1) - .2 ELSE hand1h(pc1) = hand1h(pc1) + .2 IF hand1y(pc1) > -2 THEN hand1v(pc1) = hand1v(pc1) - .2 ELSE hand2v(pc1) = hand1v(pc1) + .2 IF hand2x(pc1) > 1 THEN hand2h(pc1) = hand2h(pc1) - .2 ELSE hand2h(pc1) = hand2h(pc1) + .2 IF hand2y(pc1) > -2 THEN hand2v(pc1) = hand2v(pc1) - .2 ELSE hand2v(pc1) = hand2v(pc1) + .2 'Vex and Return Position IF pticker%(pc1) >= 75 THEN rage(po1) = rage(po1) * .75 vexed%(po1) = 1 position%(pc1) = 1 particle (neckx(po2)), (necky(po2)), fighterz(po1), 26, 25 END IF '--------------------------------------------------------------- Energy Blast CASE IS = 82 fighterfreeze (pc1) IF head%(pc1) <> 1998 THEN rage(pc1) = 0 IF neckx(pc1) > 2 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF necky(pc1) > -7 THEN neckv(pc1) = -.2 ELSE neckv(pc1) = .2 IF hand1x(pc1) > -1 THEN hand1h(pc1) = -.2 ELSE hand1h(pc1) = .2 IF hand2x(pc1) > 1 THEN hand2h(pc1) = -.2 ELSE hand2h(pc1) = .2 IF hand1y(pc1) > 2 THEN hand1v(pc1) = -.2 ELSE hand1v(pc1) = .2 IF hand2y(pc1) > 3 THEN hand2v(pc1) = -.2 ELSE hand2v(pc1) = .2 IF elbow2x(pc1) > -6 THEN elbow2h(pc1) = -.2 ELSE elbow2h(pc1) = .2 IF pticker%(pc1) > sdelay%(pc1) AND projectile%(1 * pc1) = 0 THEN IF buttx(pc1) > buttx(po1) THEN d%(pc1) = -1 ELSE d%(pc1) = 1 IF pc1 = 2 THEN n% = 3 soundticker% = 0: sbfx 8 projectile%(1 + n%) = 50 projectilex(1 + n%) = hand1x(pc2) projectiley(1 + n%) = necky(pc2) projectileh(1 + n%) = d%(pc1) * 10 projectilev(1 + n%) = 0 projectilet%(1 + n%) = 5 position%(pc1) = 1 neckx(pc1) = 5 necky(pc1) = -6 elbow1x(pc1) = 5 hand1x(pc1) = 4 elbow1y(pc1) = 0 hand1y(pc1) = 0 elbow2x(pc1) = 5 hand2x(pc1) = 4 elbow2y(pc1) = 0 hand2y(pc1) = 0 butth(pc1) = butth(pc1) - d%(pc1) bgcolor% = 19 END IF x = (hand1x(pc2) + hand2x(pc2)) / 2 y = (hand1y(pc2) + hand2y(pc2)) / 2 'Effects sbfx 7 psline (x), (y), (fighterz(pc1)), (x - (RND * 75)), (y + ((RND - .5) * 250)), (fighterz(pc1)), 15, 0 psline (x), (y), (fighterz(pc1)), (x + (RND * 75)), (y + ((RND - .5) * 250)), (fighterz(pc1)), 15, 0 pslightning (x), (y), (fighterz(pc1)), (x - (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 75, (flash2%) pslightning (x), (y), (fighterz(pc1)), (x + (RND * 100)), (y + ((RND - .5) * 200)), (fighterz(pc1)), 50, (flash2%) IF pticker%(pc1) < 10 THEN pscircle (x), (y), (fighterz(pc1)), 200 - (pticker%(pc1) * 20), flash1% pscircle (x), (y), (fighterz(pc1)), RND * 5, flash2% pscircle (x), (y), (fighterz(pc1)), 2, 15 '----------------------------------------------------------------- Spear Kick CASE IS = 83 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) rage(pc1) = 0 blur 10 sbfx 2 neckx(pc1) = -3 nee1x(pc1) = 6 nee1y(pc1) = -1 foot1x(pc1) = 6 foot1y(pc1) = -1 butth(pc1) = d%(pc1) * 5 END IF IF nee1x(pc2) > l1x AND nee1x(pc2) < l2x AND foot1y(pc2) > h1y AND foot1y(pc2) < l2y THEN butth(pc1) = 0 health%(po1) = health%(po1) - 1 ko(po1) = ko(po1) - .5 particle (nee1x(pc2)), (nee1y(pc2)), (fighterz(po1)), 18, 1 buttx(po1) = nee1x(pc2) neckx(po1) = ((RND - .5) * 2) necky(po1) = -5 - (RND * 3) elbow1x(po1) = -3 - (RND * 2) elbow2x(po1) = -3 - (RND * 2) elbow1y(po1) = 3 - (RND * 2) elbow2y(po1) = 3 - (RND * 2) hand1x(po1) = -3 + (RND * 2) hand2x(po1) = -3 + (RND * 2) hand1y(po1) = 3 hand2y(po1) = 3 IF pticker%(pc1) < 50 THEN position%(po1) = 15: pticker%(po1) = 1 ELSE butth(po1) = d%(pc1): fall (po1) ELSE IF pticker%(pc1) > 15 THEN pticker%(pc1) = 50 END IF IF pticker%(pc1) = 50 THEN position%(pc1) = 1 nee1x(pc1) = 2 foot1x(pc1) = -4 END IF '------------------------------------------------------------------ Health Up CASE IS = 84 rage(pc1) = 0 health%(pc1) = health%(pc1) + ko(pc1) particle (headx(pc2)), (heady(pc2)), (fighterz(pc1)), 25, 25 position%(pc1) = 1 '----------------------------------------------------------------- Razer Arms CASE IS = 85 soundticker% = 0: sbfx 16 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .2), 6, 5 particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1) + .2), 5, 5 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1) - .2), 6, 5 particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1) - .2), 5, 5 razers%(pc1) = 200 position%(pc1) = 1 rage(pc1) = 0 bgcolor% = 19 '--------------------------------------------------------------- Neck Snapper CASE IS = 86 IF pticker%(pc1) = 1 THEN IF canjump%(pc1) = 1 THEN nee1x(pc1) = 2 nee2x(pc1) = 2 foot1x(pc1) = -2 foot2x(pc1) = -2 nee1y(pc1) = 5 nee2y(pc1) = 5 camode% = po1 + 1 rage(pc1) = 0 buttv(pc1) = -12 butth(pc1) = (buttx(po1) - buttx(pc1)) / 20 ELSE position%(pc1) = 1 END IF END IF IF foot1y(pc2) > butty(po1) AND buttv(pc1) > -1 THEN position%(pc1) = 1: camode% = 1 'Snap IF foot1y(pc2) > heady(po2) - 5 AND foot1y(pc2) < necky(po2) + 5 AND buttx(pc1) > neckx(po2) - 5 AND buttx(pc1) < neckx(po2) + 5 THEN fighterfreeze (po1) buttx(pc1) = neckx(po2) butty(pc1) = necky(po2) - 15 + ABS(buttv(pc1)) elbow2x(pc1) = -5 elbow1y(pc1) = 0 elbow2y(pc1) = 0 hand1y(pc1) = 0 hand2y(pc1) = 0 nee1x(pc1) = 4 nee2x(pc1) = -4 foot2x(pc1) = -4 nee1y(pc1) = 8 nee2y(pc1) = 8 foot1y(pc1) = 7 foot2y(pc1) = 7 buttv(pc1) = -10 position%(pc1) = 1 camode% = 1 IF position%(po1) <> 99 THEN health%(po1) = health%(po1) - 75 soundticker% = 0: sbfx 8 IF health%(po1) <= 0 THEN decap (po1) ELSE bgcolor% = 15 particle (neckx(po2)), (necky(po2)), fighterz(po1), 20, 15 particle (neckx(po2)), (necky(po2)), fighterz(po1), 21, 10 position%(po1) = 15 d%(pc1) = -d%(pc1) butth(pc1) = butth(pc1) / 5 buttv(pc1) = -10 ELSE particle (neckx(po2)), (necky(po2)), fighterz(po1), 8, 25 buttv(pc1) = -5 END IF END IF '-------------------------------------------------------------- Swizz Punches CASE IS = 87 IF pticker%(pc1) = 1 THEN fighterfreeze (pc1) rage(pc1) = 0 hand1x(pc1) = 5 hand2x(pc1) = 5 hand1y(pc1) = 0 hand2y(pc1) = 0 neckx(pc1) = 5 END IF psline (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), (hand1x(pc2) - (pticker%(pc1) * 1.5 * d%(pc1))), (hand1y(pc2)), (fighterz(pc1) + .5), (flash1%), 0 psline (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), (hand2x(pc2) - (pticker%(pc1) * 1.5 * d%(pc1))), (hand2y(pc2)), (fighterz(pc1) - .5), (flash2%), 0 'detect hit(s) IF hand1x(pc2) > m1x AND hand1x(pc2) < m2x AND hand1y(pc2) > h1y AND hand1y(pc2) < l2y THEN IF position%(po1) = 99 THEN butth(po1) = d%(pc1) health%(po1) = health%(po1) - 2 ko(po1) = ko(po1) - 2 neckx(po1) = 0 IF health%(po1) > 0 AND ko(po1) > 0 AND pticker%(pc1) < 20 THEN fighterfreeze (po1): position%(po1) = 15 ELSE butth(po1) = d%(pc1) IF buttx(pc1) < buttx(po1) THEN particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (hand1x(pc2)), (hand1y(pc2)), (fighterz(pc1)), 3, 3 soundticker% = 0: sbfx INT(RND * 3) + 9 ELSE sbfx 25 END IF IF hand2x(pc2) > m1x AND hand2x(pc2) < m2x AND hand2y(pc2) > h1y AND hand2y(pc2) < l2y THEN IF position%(po1) = 99 THEN butth(po1) = d%(pc1) health%(po1) = health%(po1) - 3 ko(po1) = ko(po1) - 3 neckx(po1) = 0 IF health%(po1) > 0 AND ko(po1) > 0 AND pticker%(pc1) < 20 THEN fighterfreeze (po1): position%(po1) = 15 ELSE butth(po1) = d%(pc1) IF buttx(pc1) < buttx(po1) THEN particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 4, 3 ELSE particle (hand2x(pc2)), (hand2y(pc2)), (fighterz(pc1)), 3, 3 soundticker% = 0: sbfx INT(RND * 3) + 9 ELSE sbfx 25 END IF elbow1x(pc1) = (RND - .5) * 12 elbow2x(pc1) = (RND - .5) * 12 elbow1y(pc1) = (RND - .4) * 12 elbow2y(pc1) = (RND - .4) * 12 IF pticker%(pc1) = 10 THEN blur 15 IF pticker%(pc1) = 25 THEN position%(pc1) = 1 '----------------------------------------------------------------- Upper Bust CASE IS = 88 IF pticker%(pc1) = 1 THEN soundticker% = 0: sbfx 25 fighterfreeze (pc1) rage(pc1) = 0 elbow2x(pc1) = 3 elbow2y(pc1) = -5 hand2x(pc1) = 0 hand2y(pc1) = -4 elbow1x(pc1) = -3 elbow1y(pc1) = 5 hand1x(pc1) = 0 hand1y(pc1) = 4 headx(pc1) = 0 necky(pc1) = -10 neckx(pc1) = 1 nee1x(pc1) = 5 nee2x(pc1) = -1 foot1x(pc1) = -1 foot2x(pc1) = -3 nee1y(pc1) = 8 nee2y(pc1) = 8 foot1y(pc1) = 7 foot2y(pc1) = 7 'Detect Hit IF pticker%(pc1) = 2 THEN particle (hand2x(pc2)), (necky(pc2)), fighterz(pc1), 22, 10 IF hand2x(pc2) > m1x - 8 AND hand2x(pc2) < m2x + 8 AND hand2y(pc2) > h1y - 15 AND hand2y(pc2) < l2y THEN camode% = 0 bgcolor% = 15 blur 5 panh = d%(pc1) panv = 0 health%(po1) = health%(po1) - (ahpow%(pc1) * 5) ko(po1) = ko(po1) - 50 IF health%(po1) <= 0 THEN decap (po1) buttv(po1) = -31 butth(po1) = d%(pc1) position%(po1) = 10 COLOR , 15: COLOR , 0 particle (hand2x(pc2)), (necky(pc2)), fighterz(pc1), 23, 10 FOR wee = 1 TO 80 STEP 5: particle (hand2x(pc2) + ((RND - .5) * 5)), (butty(pc1) - wee), (fighterz(pc1)), 2, 1: NEXT wee soundticker% = 0: sbfx 11 END IF END IF IF pticker%(pc1) > 9 AND butty(po1) > butty(pc1) - 25 THEN camode% = 1 position%(pc1) = 1 elbow2v(pc1) = 2 END IF '---------------------------------------------------------------------- Block CASE IS = 99 fighterfreeze (pc1) elbow1x(pc1) = 4 elbow1y(pc1) = 2 hand1x(pc1) = 0 elbow2x(pc1) = 0 nee1y(pc1) = nee2y(pc1) - 8 foot1x(pc1) = 0 neckx(pc1) = 1 IF pticker%(pc1) > 10 THEN position%(pc1) = 1 '---------------------------------------------------------------------------- END SELECT IF healths% > 0 AND position%(pc1) < 30 THEN health%(po1) = healths%: ko(po1) = kos NEXT pc1 END SUB SUB file 20 SELECT CASE mode% '----------------------------------------------------------------------- Load CASE IS = 1 fault$ = "load" OPEN path$ + "\slash.dat" FOR INPUT AS #1 IF setback% = 1 THEN mode% = 3: GOTO 20 INPUT #1, cmethod%, cfreq%, frameskip%, particles%, nstars%, rez%, delay%, stage%, sbsound%, soundwait%, i16m%, smears%, stagedetail%, fighterdetail%, hudetail%, solidc%, name$(1), flimits% IF setback% = 1 THEN mode% = 3: GOTO 20 INPUT #1, head%(1), body%(1), arms%(1), hands%(1), legs%(1), feet%(1), hairl%(1), hairc%(1), hairt%(1) INPUT #1, headc%(1), bodyc%(1), armsc%(1), handsc%(1), legsc%(1), feetc%(1) CLOSE #1 IF stage% > stages% THEN stage% = 1: setfightercpu LOCATE 12, 27: PRINT "Loaded" LOCATE 13, 27: PRINT " " LOCATE 14, 27: PRINT " " '----------------------------------------------------------------------- Save 38 CASE IS = 2 fault$ = "save1" OPEN path$ + "\slash.dat" FOR OUTPUT AS #1 IF setback% = 1 THEN setback% = 0: GOTO 38 IF setback% = 2 THEN setback% = 0: GOTO 20 WRITE #1, cmethod%, cfreq%, frameskip%, particles%, nstars%, rez%, delay%, stage%, sbsound%, soundwait%, i16m%, smears%, stagedetail%, fighterdetail%, hudetail%, solidc%, name$(1), flimits% IF setback% = 2 THEN setback% = 0: GOTO 20 WRITE #1, head%(1), body%(1), arms%(1), hands%(1), legs%(1), feet%(1), hairl%(1), hairc%(1), hairt%(1) WRITE #1, headc%(1), bodyc%(1), armsc%(1), handsc%(1), legsc%(1), feetc%(1) CLOSE #1 LOCATE 12, 27: PRINT " " LOCATE 13, 27: PRINT "Saved" LOCATE 14, 27: PRINT " " COLOR 7 IF rez% <> 7 THEN LOCATE 15, 27: PRINT "<" + UCASE$(path$) + "\SLASH.DAT>" LOCATE 16, 27: PRINT "" '------------------------------------------------------------- Reset Defaults CASE IS = 3 cmethod% = 1 cfreq% = -1 frameskip% = 3 particles% = 30 nstars% = 4 rez% = 9 delay% = 0 stage% = 1 soundwait% = 5 sbsound% = 0 i16m% = 0 stagedetail% = 1 fighterdetail% = 1 hudetail% = 1 smears% = 1 flimits% = 1 solidc% = 0 head%(1) = 1 body%(1) = 2 arms%(1) = 2 hands%(1) = 4 legs%(1) = 2 feet%(1) = 1 headc%(1) = 7 bodyc%(1) = 6 armsc%(1) = 1 handsc%(1) = 7 legsc%(1) = 1 feetc%(1) = 4 hairl%(1) = 1 hairc%(1) = 4 hairt%(1) = 1 name$(1) = "Mortal" LOCATE 12, 27: PRINT " " LOCATE 13, 27: PRINT " " LOCATE 14, 27: PRINT "Defaulted" END SELECT fault$ = "" mode% = 0 END SUB SUB floors '---------------------------------------------------------- Floors / RingOuts FOR wee = 1 TO 2 wee2 = wee + 2 'Default Settings floor3 = floor1 canjump%(wee) = 0 SELECT CASE stage% '---------------------------------------------------------------------------- CASE IS = 1 IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 THEN floor3 = floor2 IF butty(wee) > 70 THEN ringout (wee) '---------------------------------------------------------------------------- CASE IS = 2 IF ABS(buttx(wee)) > ring% THEN buttv(wee) = buttv(wee) - gravity - .05: ringout (wee) '---------------------------------------------------------------------------- CASE IS = 3, 8, 15 IF ABS(buttx(wee)) > ring% THEN floor3 = floor2 IF foot1y(wee2) >= floor2 - 1 OR foot2y(wee2) >= floor2 - 1 THEN ringout (wee): EXIT SUB END IF '---------------------------------------------------------------------------- CASE IS = 4 IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 + 25 THEN floor3 = floor2 ELSE floor3 = (buttx(wee) * bob) / 200 IF heady(wee2) > 30 THEN ringout (wee) '---------------------------------------------------------------------------- CASE IS = 9 IF ABS(buttx(wee)) > ring% THEN floor3 = floor2: ringout (wee) ELSE floor3 = (buttx(wee) * trigger1) / 300 '---------------------------------------------------------------------------- CASE IS = 12 IF ABS(buttx(wee)) > ring% OR butty(wee) > floor1 THEN floor3 = floor2: camode% = wee + 1 '---------------------------------------------------------------------------- CASE IS = 14 IF ABS(buttx(wee)) > 100 THEN floor3 = floor2 IF ticker% < 60 AND wee = 1 THEN floor3 = -100 END SELECT '-------------------------------------------------------------------- CanJump IF position%(wee) = 1 THEN IF foot1y(wee2) >= (floor3 - buttv(wee)) - 2 OR foot2y(wee2) >= (floor3 - buttv(wee)) - 2 THEN canjump%(wee) = 1 END IF '---------------------------------------------- Gravity, Traction and Landing buttv(wee) = buttv(wee) + gravity IF foot1y(wee2) >= (floor3 - buttv(wee)) OR foot2y(wee2) >= (floor3 - buttv(wee)) OR butty(wee) >= (floor3 - buttv(wee)) THEN butth(wee) = butth(wee) / 1.1 'bounce IF position%(wee) >= 8 AND position%(wee) <= 11 AND ABS(buttv(wee)) > 3 AND ABS(buttv(wee)) < 25 THEN buttv(wee) = -buttv(wee) / 3: butty(wee) = floor3 IF buttv(wee) > 0 THEN buttv(wee) = 0 IF foot1y(wee2) > (floor3) THEN butty(wee) = butty(wee) - (foot1y(wee2) - (floor3)) ELSE IF foot2y(wee2) > floor3 THEN butty(wee) = butty(wee) - (foot2y(wee2) - (floor3)) END IF END IF '-------------------------------------------------------------- Landing Heads IF hy(wee) + hv(wee) >= floor3 - 2 THEN hv(wee) = 0 hy(wee) = floor3 - 2 hh(wee) = hh(wee) / 2 ELSE hv(wee) = hv(wee) + gravity END IF '----------------------------------------------------------------------- Hair IF wee = 1 THEN FOR n% = 1 TO 5 IF hairy(n%) > floor3 THEN hairy(n%) = floor3 NEXT n% ELSE FOR n% = 6 TO 10 IF hairy(n%) > floor3 THEN hairy(n%) = floor3 NEXT n% END IF '------------------------------------------------------------------- 'Slamming on Ground Sound IF butty(wee) >= floor3 - 5 AND buttv(wee) > .5 THEN sbfx 20 'Skidding on Ground Sound IF butty(wee) >= floor3 - 1 AND buttv(wee) > -1 AND ABS(butth(wee)) > .3 THEN sbfx 5 'Smoke IF ABS(butth(wee)) > 4 AND foot1y(wee2) > floor3 - 1 THEN particle foot1x(wee2), foot1y(wee2), fighterz(wee), 16, 1 IF ABS(butth(wee)) > 3 AND foot1y(wee2) > floor3 - 1 THEN particle foot1x(wee2), foot1y(wee2), fighterz(wee), 15, 1 NEXT wee END SUB SUB getpath fault$ = "file" OPEN "c:\sfb2.pth" FOR INPUT AS #1 IF setback% = 1 THEN window3d: setpath: GOTO 28 INPUT #1, path$ CLOSE #1 28 fault$ = "" END SUB SUB i16 (x, y, x2, y2, F$) fault$ = "file" OPEN path$ + "\" + F$ + ".i16" FOR INPUT AS #1 IF setback% = 1 THEN setback% = 0 LINE (x, y)-(x + 18.5, y + 18), 0, BF LINE (x, y)-(x + 18, y + 17.5), 4 LINE (x + 18, y)-(x, y + 17.5), 4 GOTO 13 END IF x1 = x y1 = y DO WHILE NOT EOF(1) INPUT #1, c% IF c% = 16 THEN x1 = x y1 = y1 + y2 ELSE LINE (x1, y1)-(x1 + x2, y1 + y2), c%, BF x1 = x1 + x2 END IF LOOP 13 fault$ = "" CLOSE #1 END SUB SUB jump (n%, T%) IF canjump%(n%) = 1 THEN SELECT CASE legs%(n%) CASE 1: buttv(n%) = -7 CASE 2, 2000: buttv(n%) = -10 CASE 3, 666: buttv(n%) = -8 CASE 4: buttv(n%) = -14 CASE 5, 1998: buttv(n%) = -9 END SELECT IF T% = 1 THEN SELECT CASE legs%(n%) CASE 1, 666: butth(n%) = butth(n%) - 1.6 CASE 2: butth(n%) = butth(n%) - 1.4 CASE 3: butth(n%) = butth(n%) - 1.2 CASE 4: butth(n%) = butth(n%) - 1 CASE 5, 2000: butth(n%) = butth(n%) - 2.5 CASE 1998: butth(n%) = butth(n%) - 3 END SELECT END IF IF T% = 3 THEN SELECT CASE legs%(n%) CASE 1, 666: butth(n%) = butth(n%) + 1.6 CASE 2: butth(n%) = butth(n%) + 1.4 CASE 3: butth(n%) = butth(n%) + 1.2 CASE 4: butth(n%) = butth(n%) + 1 CASE 5, 2000: butth(n%) = butth(n%) + 2.5 CASE 1998: butth(n%) = butth(n%) + 3 END SELECT END IF END IF END SUB SUB keycheck fault$ = "nokey" OPEN path$ + "\sfb2.key" FOR INPUT AS #1 INPUT #1, wee$ CLOSE #1 END SUB SUB loadsave 39 rezs% = rez% setback% = 0 smallwindow COLOR 15 LOCATE 10, 2: PRINT "File Options" LOCATE 12, 2: PRINT "1 Load" LOCATE 13, 2: PRINT "2 Save" LOCATE 14, 2: PRINT "3 Defaults" LOCATE 15, 2: PRINT "4 Delete Settings File" LOCATE 16, 2: PRINT "5 Reset Path File" COLOR 7 IF rez% <> 7 THEN LOCATE 15, 27: PRINT "<" + UCASE$(path$) + "\SLASH.DAT>" LOCATE 16, 27: PRINT "" 22 wee$ = INKEY$ IF setback% = 1 THEN 39 IF wee$ = "" THEN 22 IF wee$ = "1" THEN mode% = 1: file newmatch END IF IF wee$ = "2" THEN mode% = 2: file END IF IF wee$ = "3" THEN mode% = 3: file newmatch END IF IF wee$ = "4" THEN LOCATE 15, 27 IF rez% = 7 THEN PRINT "Deleted ": LOCATE 15, 26 ELSE PRINT "Deleted ": LOCATE 15, 27 SHELL "DEL " + path$ + "\SLASH.DAT" LOCATE 12, 27: PRINT " " LOCATE 13, 27: PRINT " " LOCATE 14, 27: PRINT " " END IF IF wee$ = "5" THEN setpath restart% = 1 GOTO 23 END IF IF rez% <> rezs% THEN SCREEN rez%: window3d: GOTO 39 IF wee$ <> CHR$(27) THEN 22 23 csmallwindow IF wee$ = "3" THEN SCREEN rez% wee$ = "" END SUB SUB movecam '-------------------------------------------------------------Camera Movement zoom = zoom + zoomd panx = panx + panh pany = pany + panv zoomd = zoomd / 1.1 panh = panh / 1.01 panv = panv / 1.01 END SUB SUB mud SCREEN 9 COLOR , 0 fault$ = "mud" IF setback% = 1 THEN setback% = 0: GOTO 21 '------------------------------------------------------------------- Show Mud CLS camdefaults zoom = .5 panx = -500 s$ = " SFB2: Vector Warriors, Powered by Slash - Created by Kevin Reems 1997-1998" window3d FOR miniloop = 0 TO 75 IF INKEY$ <> "" THEN 21 panh = 25 movecam 'page flipping pflip flicker = TIMER: DO UNTIL TIMER - flicker > .000001: LOOP 'Clear Screen CLS '------------------------------------------------------------------- IF miniloop = 1 THEN c% = 15 IF miniloop = 3 THEN c% = 9 IF miniloop = 5 THEN c% = 1 IF miniloop = 74 THEN c% = 0 FOR wee = n TO n + 20 psline -1500, -150, (wee + .5), 1500, -150, (wee + .5), c%, 3 psline -1500, 150, (wee + .5), 1500, 150, (wee + .5), c%, 3 psline -500, -150, (wee), 500, -150, (wee), c%, 0 psline -500, 150, (wee), 500, 150, (wee), c%, 0 NEXT wee IF n > 0 THEN n = n - .2 ELSE n = 1 IF miniloop > 60 THEN window2d LINE (0, (miniloop * 10) - 750)-(100, (miniloop * 10) - 650), 0, BF window3d END IF '------------------------------------------------------------------- psdpset -200, -100, 0, 10, 8 psdpset -100, -75, 0, 5, 8 psdpset 0, 10, 0, 7, 8 psdpset 100, -25, 0, 3, 8 psdpset 400, 75, 0, 6, 8 psdpset 500, -100, 0, 5, 8 psdpset 200, 25, 0, 6, 8 psdpset 300, -75, 0, 5, 8 psdpset 600, 100, 0, 5, 8 '---------S psdline 150, -50, 1, 100, 0, 4, 15, 7, 8, 0 psdline 100, 0, 1, 150, 0, 4, 15, 7, 8, 0 psdline 150, 0, 1, 100, 50, 4, 15, 7, 8, 0 '---------L psdline 160, 50, 1, 200, 50, 4, 15, 7, 8, 0 psdline 160, 50, 1, 180, -50, 4, 15, 7, 8, 0 '---------A psdline 210, 50, 1, 250, -50, 4, 15, 7, 8, 0 psdline 250, -50, 1, 250, 50, 4, 15, 7, 8, 0 psdline 240, 0, 1, 250, 0, 4, 15, 7, 8, 0 '---------S psdline 310, -50, 1, 260, 0, 4, 15, 7, 8, 0 psdline 260, 0, 1, 310, 0, 4, 15, 7, 8, 0 psdline 310, 0, 1, 260, 50, 4, 15, 7, 8, 0 '---------H psdline 320, 50, 1, 340, -50, 4, 15, 7, 8, 0 psdline 330, 0, 1, 370, 0, 4, 15, 7, 8, 0 psdline 360, 50, 1, 380, -50, 4, 15, 7, 8, 0 '------------------------------------------------------------------- IF miniloop < 5 THEN LOCATE 23, 1: COLOR 8: PRINT s$ IF miniloop > 4 AND miniloop < 10 THEN LOCATE 23, 1: COLOR 7: PRINT s$ IF miniloop > 9 THEN LOCATE 23, 1: COLOR 15: PRINT s$ NEXT miniloop IF i16m% = 2 THEN 21 window2d SCREEN , , 0, 0 i16 0, 0, .88, .85, "slash" SCREEN , , 1, 0 i16 0, 0, .54, .73, "sfb2" SCREEN , , 0, 1 CLS SLEEP 3 21 fault$ = "" END SUB SUB newmatch 'Start a New Match '----------------------- IF stage% > stages% THEN stage% = 1 keycheck IF wee$ <> "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit" THEN fault$ = "writekey" wee$ = "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit" OPEN path$ + "\sfb2.key" FOR OUTPUT AS #1 WRITE #1, wee$ CLOSE #1 '---------------------------------------------------------------------------- smallwindow COLOR 15 LOCATE 10, 2: PRINT "STAGE SELECT ENABLED" COLOR 12 IF rez% > 7 THEN LOCATE 12, 2: PRINT "Congratulations, You've Earned The Stage Select Option." ELSE LOCATE 12, 2: PRINT "Congratulations!" LOCATE 13, 2: PRINT "You've Earned The Stage Select Option." END IF '---------------------------------------------------------------------------- END IF END IF stageinit END SUB SUB nokey smallwindow COLOR 15 LOCATE 10, 2: PRINT "DISABLED" COLOR 12 IF rez% > 7 THEN LOCATE 12, 2: PRINT "You Must Complete Every Stage To Enable This Option." LOCATE 13, 2: PRINT "Don't Forget To Save Your Progress." ELSE LOCATE 12, 2: PRINT "You Must Complete Every Stage" LOCATE 13, 2: PRINT "To Enable This Option." LOCATE 14, 2: PRINT "Don't Forget To Save Your Progress." END IF COLOR 4 LOCATE 16, 2: PRINT "Press Esc" 40 IF INKEY$ <> CHR$(27) THEN 40 csmallwindow END SUB SUB ocasional IF flimits% = 1 THEN fighterlimits FOR wee = 1 TO 2 'recharge KO & Rage IF Special%(wee) = 0 AND ko(wee) > 0 AND ko(wee) < 100 AND health%(wee) > 0 THEN ko(wee) = ko(wee) + kocharge(wee) IF rage(wee) < 100 AND health%(wee) > 0 THEN rage(wee) = rage(wee) + ragecharge(wee) IF vexed%(wee) > 0 THEN health%(wee) = health%(wee) - 1 '---------------------------+ 'Headless Stuff IF headless%(wee) = 1 THEN health%(wee) = health%(wee) - 20 particle (hx(wee)), (hy(wee)), fighterz(wee), 0, 1 END IF '---------------------------+ 'Damage Bar Stuff IF health%(wee) > maxhp%(wee) THEN health%(wee) = maxhp%(wee) IF health%(wee) < hpslide%(wee) THEN hpslide%(wee) = hpslide%(wee) - 4 ELSE hpslide%(wee) = health%(wee) END IF IF ko(wee) < koslide%(wee) THEN koslide%(wee) = koslide%(wee) - 2 ELSE koslide%(wee) = ko(wee) END IF IF health%(wee) >= maxhp%(wee) THEN hc%(wee) = 10 ELSE hc%(wee) = 14 IF vexed%(wee) > 0 THEN hc%(wee) = 9 IF ko(wee) >= 100 THEN kc%(wee) = 10 ELSE kc%(wee) = 14 '---------------------------+ IF rage(wee) < 0 THEN rage(wee) = 0 IF rage(wee) = 100 THEN vexed%(wee) = 0 IF fighterz(wee) > midstage THEN fighterz(wee) = fighterz(wee) - .1 IF fighterz(wee) < midstage THEN fighterz(wee) = fighterz(wee) + .1 IF fighterz(wee) > midstage + .5 THEN fighterz(wee) = fighterz(wee) - .5 IF fighterz(wee) < midstage - .5 THEN fighterz(wee) = fighterz(wee) + .5 NEXT wee '---------------------------------------------------------------------------- END SUB SUB options IF AIactive%(1) = 1 THEN AIactive%(1) = 0: stage% = 1: stageinit 1 redraw% = 0 fault$ = "" bigwindow COLOR 15, 0 IF rez% = 7 THEN LOCATE 4, 17: PRINT "OPTIONS" ELSE LOCATE 4, 37: PRINT "OPTIONS" END IF LOCATE 6, 6: PRINT "Select Stage" LOCATE 8, 6: PRINT "Build Fighter" LOCATE 10, 6: PRINT "Visit Dojo" LOCATE 12, 6: PRINT "Settings" LOCATE 14, 6: PRINT "Load/Save Options" LOCATE 16, 6: PRINT "Demo Mode" LOCATE 18, 6: PRINT "Restart" LOCATE 20, 6: PRINT "Quit" IF ptoptions% = 0 THEN ptoptions% = 6 DO wee$ = UCASE$(INKEY$) '----------------------------------------------------------------- Move Arrow SELECT CASE wee$ CASE IS = "8", CHR$(0) + "H" LOCATE ptoptions%, 2: PRINT " " IF ptoptions% > 6 THEN ptoptions% = ptoptions% - 2 ELSE ptoptions% = 20 CASE IS = "5", "2", CHR$(0) + "P" LOCATE ptoptions%, 2: PRINT " " IF ptoptions% < 20 THEN ptoptions% = ptoptions% + 2 ELSE ptoptions% = 6 END SELECT LOCATE ptoptions%, 2: PRINT CHR$(16) '--------------------------------------------------------------------- Select IF wee$ = " " OR wee$ = CHR$(13) THEN redraw% = 1 wee$ = "" SELECT CASE ptoptions% CASE IS = 6 wee$ = "" keycheck IF wee$ = "´œ‘·ðE=666ÛÈåÃGenerated Key File: Do Not Edit" THEN setstage ELSE nokey wee$ = "" CASE IS = 8 setfighter CASE IS = 10 smallwindow LOCATE 10, 31: PRINT "Master Bean's Dojo" LOCATE 12, 2: PRINT "Leave Current Stage to Visit Dojo ?" window2d i16 76, 41, .363, .355, "dojo" LINE (75, 40)-(95, 60), 7, B window3d LOCATE 13, 2: PRINT "" DO: wee$ = INKEY$: LOOP UNTIL wee$ <> "" IF UCASE$(wee$) = "Y" THEN stage% = 1000 stageinit setfightercpu END IF CASE IS = 12 settings CASE IS = 14 loadsave CASE IS = 16 AIactive%(1) = 1 AIactive%(2) = 1 dif% = 7 stage% = (RND * 3) + 1 newmatch EXIT SUB CASE IS = 18 restart% = 1 CASE IS = 20 quit END SELECT END IF IF restart% = 1 THEN wee$ = CHR$(27) IF redraw% = 1 THEN 1 LOOP UNTIL wee$ = CHR$(27) cbigwindow END SUB SUB page2 SCREEN , 0, 0 LOCATE 1, 1: COLOR 4: PRINT "Loading..." SCREEN , 2, 0 window2d SELECT CASE stage% CASE IS = 1 wee = 1 DO WHILE wee < 50 LINE (0, 100 - wee)-(100, 100 - wee), 4 wee = wee * 2 LOOP CASE IS = 2 stars2d 8, 15, 15 CASE IS = 3 i16 0, 0, .88, .85, "slash" CASE IS = 4 i16 0, 0, .88, .85, "slash" END SELECT window3d END SUB SUB pagetest 32 fault$ = "pagetest" wee$ = UCASE$(INKEY$) IF wee$ = "0" THEN SCREEN , 0, 0 IF wee$ = "1" THEN SCREEN , 1, 1 IF wee$ = "2" THEN SCREEN , 2, 2 IF wee$ = "3" THEN SCREEN , 3, 3 IF wee$ = "4" THEN SCREEN , 4, 4 IF wee$ = "5" THEN SCREEN , 5, 5 IF wee$ <> "Q" THEN 32 wee$ = "": fault$ = "" END SUB SUB particle (x, y, Z, T%, Q%) fault$ = "particles" FOR wee = 1 TO particles% IF p%(wee) = 0 AND Q% > 0 THEN Q% = Q% - 1 px(wee) = x py(wee) = y pz(wee) = Z SELECT CASE T% CASE IS = 0: 'Blood Down p%(wee) = 20 ph(wee) = (RND - .5) pv(wee) = RND pg%(wee) = 1 pc1%(wee) = 12 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 0 pk%(wee) = 1 CASE IS = 1: 'Normal Blood p%(wee) = 30 ph(wee) = (RND - .5) * 3 pv(wee) = -RND * 5 pg%(wee) = 2 pc1%(wee) = 12 pc2%(wee) = 4 pc3%(wee) = 4 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 2: 'Blood Spurting Up p%(wee) = 60 ph(wee) = (RND - .5) pv(wee) = -8 + (RND * 2) pg%(wee) = 2 pc1%(wee) = 12 pc2%(wee) = 4 pc3%(wee) = 4 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 3: 'Blood Left p%(wee) = 30 ph(wee) = -RND * 3 pv(wee) = -RND * 3 pg%(wee) = 2 pc1%(wee) = 12 pc2%(wee) = 4 pc3%(wee) = 4 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 4: 'Blood Right p%(wee) = 30 ph(wee) = RND * 3 pv(wee) = -RND * 3 pg%(wee) = 2 pc1%(wee) = 12 pc2%(wee) = 4 pc3%(wee) = 4 pf%(wee) = 1 pk%(wee) = 1 pk%(wee) = 1 CASE IS = 5: 'Large Omni Spark (Blue) p%(wee) = 30 ph(wee) = (RND - .5) * 15 pv(wee) = (RND - .5) * 15 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 0 pk%(wee) = 1 CASE IS = 6: 'Small Omni Spark (Blue) p%(wee) = 4 ph(wee) = (RND - .5) * 30 pv(wee) = (RND - .5) * 30 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 15 pc3%(wee) = 15 pf%(wee) = 0 pk%(wee) = 0 CASE IS = 8: 'Blue Spark Shower p%(wee) = 30 ph(wee) = (RND - .5) * 4 pv(wee) = (-RND) * 3 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 9: 'Red Spark Shower p%(wee) = 40 ph(wee) = (RND - .5) pv(wee) = RND pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 0 pk%(wee) = 1 CASE IS = 11: 'Normal Water p%(wee) = 30 ph(wee) = (RND - .5) * 3 pv(wee) = -RND * 5 pg%(wee) = 2 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 2 CASE IS = 12: 'Water Spurting Up p%(wee) = 40 ph(wee) = (RND - .5) pv(wee) = -7 / (1 + RND) pg%(wee) = 2 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 2 CASE IS = 13: 'Water Left p%(wee) = 30 ph(wee) = -RND * 3 pv(wee) = -RND * 3 pg%(wee) = 2 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 2 CASE IS = 14: 'Water Right p%(wee) = 30 ph(wee) = RND * 3 pv(wee) = -RND * 3 pg%(wee) = 2 pc1%(wee) = 15 pc2%(wee) = 9 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 2 CASE IS = 15: 'Smoke p%(wee) = 60 ph(wee) = (RND - .5) * 2 pv(wee) = -RND * 1.5 pg%(wee) = 2 pc1%(wee) = 7 pc2%(wee) = 8 pc3%(wee) = 8 pf%(wee) = 3 pk%(wee) = 0 CASE IS = 16: 'Fire p%(wee) = 30 ph(wee) = (RND - .5) * 2 pv(wee) = -RND pg%(wee) = 1 pc1%(wee) = 14 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 3 pk%(wee) = 0 CASE IS = 17: 'Flame p%(wee) = 40 ph(wee) = (RND - .5) * 2 pv(wee) = -RND * 4 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 14 pc3%(wee) = 12 pf%(wee) = 3 pk%(wee) = 0 CASE IS = 18: 'Bloody Mess! p%(wee) = 30 ph(wee) = (RND - .5) * 8 pv(wee) = -RND * 8 pg%(wee) = 2 pc1%(wee) = 12 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 1 pk%(wee) = 2 CASE IS = 19: 'Grayscale Dot p%(wee) = 18 ph(wee) = 0 pv(wee) = 0 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 7 pc3%(wee) = 8 pf%(wee) = 0 pk%(wee) = 2 CASE IS = 20: 'Horizontal Snap Spark White p%(wee) = 15 ph(wee) = (RND - .5) * 50 pv(wee) = (RND - .5) * 5 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 15 pc3%(wee) = 7 pf%(wee) = 0 pk%(wee) = 0 CASE IS = 21: 'Horizontal Snap Spark Red p%(wee) = 15 ph(wee) = (RND - .5) * 50 pv(wee) = (RND - .5) * 5 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 0 pk%(wee) = 0 CASE IS = 22: 'Vertical Snap Spark White p%(wee) = 15 ph(wee) = (RND - .5) * 5 pv(wee) = (RND - .5) * 50 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 15 pc3%(wee) = 7 pf%(wee) = 0 pk%(wee) = 0 CASE IS = 23: 'Vertical Snap Spark Red p%(wee) = 15 ph(wee) = (RND - .5) * 5 pv(wee) = (RND - .5) * 50 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 0 pk%(wee) = 0 CASE IS = 24: 'Volcanic Chunks (Brown) p%(wee) = 60 ph(wee) = (RND - .5) * 2 pv(wee) = RND * -10 pg%(wee) = 3 pc1%(wee) = 6 pc2%(wee) = 6 pc3%(wee) = 6 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 25: 'Large Omni Spark (Green) p%(wee) = 18 ph(wee) = (RND - .5) * 50 pv(wee) = (RND - .5) * 50 pg%(wee) = 1 pc1%(wee) = 15 pc2%(wee) = 10 pc3%(wee) = 2 pf%(wee) = 0 pk%(wee) = 1 CASE IS = 26: 'Volcanic Chunks (Blue) p%(wee) = 30 ph(wee) = (RND - .5) * 2 pv(wee) = RND * -10 pg%(wee) = 3 pc1%(wee) = 9 pc2%(wee) = 1 pc3%(wee) = 1 pf%(wee) = 1 pk%(wee) = 1 CASE IS = 27: 'Candle-Like Flame p%(wee) = 15 ph(wee) = (RND - .5) / 3 pv(wee) = -RND pg%(wee) = 1 pc1%(wee) = 14 pc2%(wee) = 12 pc3%(wee) = 4 pf%(wee) = 3 pk%(wee) = 0 END SELECT END IF '---------------------------------------------------------------------------- NEXT wee END SUB SUB particleclear FOR wee = 1 TO particles% p%(wee) = 0 py(wee) = -5000 NEXT wee FOR wee = 1 TO 10 smearl%(wee) = 0 NEXT wee END SUB SUB particlemove FOR wee = 1 TO particles% px(wee) = px(wee) + ph(wee) py(wee) = py(wee) + pv(wee) SELECT CASE pf%(wee) CASE IS = 1: pv(wee) = pv(wee) + gravity CASE IS = 2: pv(wee) = pv(wee) - gravity CASE IS = 3: ph(wee) = ph(wee) / 1.3 END SELECT NEXT wee END SUB SUB particlerender fault$ = "particles" 18 FOR wee = 1 TO particles% IF setback% = 1 THEN setback% = 0: particles% = 0: GOTO 18 '---------------------------------------------------------------------------- IF p%(wee) > 0 THEN IF pg%(wee) < 3 THEN psline (px(wee)), (py(wee)), (pz(wee)), (px(wee) - ph(wee)), (py(wee) - pv(wee)), (pz(wee) - pd(wee)), (pc1%(wee)), 0 IF pg%(wee) > 1 THEN pscircle (px(wee)), (py(wee)), (pz(wee)), (.3), (pc1%(wee)) END IF '---------------------------------------------------------------------------- NEXT wee fault$ = "" END SUB SUB pause SCREEN , , 0, 0 COLOR 4 LOCATE 22, 38 PRINT "Pause" COLOR 15 LOCATE 21, 1: PRINT name$(1) + " VS. " + name$(2) LOCATE 22, 1: PRINT stagename$ DO WHILE INKEY$ = "" LOOP END SUB SUB pflip fault$ = "pflip" IF rez% <> 1 AND rez% <> 12 THEN SWAP pflip1%, pflip2% SCREEN , , pflip1%, pflip2% END IF fault$ = "" END SUB SUB projectilerender FOR n% = 1 TO 6 IF projectile%(n%) > 0 THEN IF projectile%(n%) < 4 THEN Z = fighterz(1) ELSE Z = fighterz(2) '---------------- SELECT CASE projectilet%(n%) '------------------------------------------------------------- Ball Lightning CASE 1 pscircle (projectilex(n%)), (projectiley(n%)), (Z), (RND * 4), (flash1%) pscircle (projectilex(n%)), (projectiley(n%)), (Z), (4), (flash2%) pslightning (projectilex(n%)), (projectiley(n%)), (Z), (projectilex(n%) - projectileh(n%)), (projectiley(n%) + ((RND - .5) * 25)), (Z), (20), (flash2%) particle (projectilex(n%)), (projectiley(n%)), (Z), 5, 1 '------------------------------------------------------------ Large Fire Ball CASE 2 s = projectile%(n%) IF s > 6 THEN s = 6 pscircle (projectilex(n%)), (projectiley(n%)), (Z), (s), (flash3%) FOR wee = 1 TO 3 y = projectiley(n%) + ((RND - .5) * 10) psline (projectilex(n%)), (y), (Z), (projectilex(n%) - (projectileh(n%) + ((RND - .5) * s * 5))), (y), (Z), flash3%, 0 particle (projectilex(n%) - ((RND * projectileh(n%)) * 5)), (projectiley(n%) + ((RND - .5) * 10)), (Z), 16, 1 NEXT wee '------------------------------------------------------------ Small Fire Ball CASE 3 s = projectile%(n%) IF s > 3 THEN s = 3 pscircle (projectilex(n%)), (projectiley(n%)), (Z), (s), (flash3%) FOR wee = 1 TO 3 y = projectiley(n%) + ((RND - .5) * 5) psline (projectilex(n%)), (y), (Z), (projectilex(n%) - (projectileh(n%) + ((RND - .5) * s))), (y), (Z), 4, 0 particle (projectilex(n%) - ((RND * projectileh(n%)) * 5)), (projectiley(n%) + ((RND - .5) * 5)), (Z), 16, 1 NEXT wee '------------------------------------------------------------------- Nin-Star CASE 4 particle (projectilex(n%)), (projectiley(n%)), (Z), 19, 1 psline (projectilex(n%) - RND), (projectiley(n%) - RND), (Z), (projectilex(n%) + RND), (projectiley(n%) + RND), (Z), 15, 0 psline (projectilex(n%) + RND), (projectiley(n%) - RND), (Z), (projectilex(n%) - RND), (projectiley(n%) + RND), (Z), 15, 0 '--------------------------------------------------------------- Energy Blast CASE 5 pscline (projectilex(n%) - projectileh(n%)), (projectiley(n%)), (Z), (projectilex(n%) - (projectileh(n%) * 3)), (projectiley(n%)), (Z), (4), (flash1%) pscircle (projectilex(n%) - projectileh(n%)), (projectiley(n%)), (Z), (15), (flash1%) pscircle (projectilex(n%)), (projectiley(n%)), (Z), (RND * 5), (flash1%) pscircle (projectilex(n%)), (projectiley(n%)), (Z), (5), (flash2%) pslightning (projectilex(n%)), (projectiley(n%)), (Z), (projectilex(n%) - (projectileh(n%) * 5)), (projectiley(n%) + ((RND - .5) * 25)), (Z), (20), (flash2%) FOR wee = 1 TO 3: particle (projectilex(n%) + ((RND - .5) * 20)), (projectiley(n%) + ((RND - .5) * 15)), (Z), 19, 1: NEXT wee END SELECT END IF NEXT n% END SUB SUB projectiles 'Ball-1/4 Collision Detection IF projectile%(1) > 0 AND projectile%(4) > 0 AND projectilex(1) > projectilex(1) - 5 AND projectilex(1) < projectilex(1) + 5 AND projectiley(1) > projectiley(1) - 5 AND projectiley(1) < projectiley(1) + 5 THEN IF projectilet%(1) = 1 OR projectilet%(4) = 1 THEN particle ((projectilex(1) + projectilex(2)) / 2), (projectiley(1)), (fighterz(1)), 5, 15 IF projectilet%(1) = 2 OR projectilet%(4) = 2 THEN particle ((projectilex(1) + projectilex(2)) / 2), (projectiley(1)), (fighterz(1)), 17, 15 projectile%(1) = 0 projectile%(4) = 0 END IF FOR n% = 1 TO 6 IF projectile%(n%) > 0 THEN projectile%(n%) = projectile%(n%) - 1 projectilex(n%) = projectilex(n%) + projectileh(n%) projectiley(n%) = projectiley(n%) + projectilev(n%) IF n% < 4 THEN pc1% = 1: po1% = 2 ELSE pc1% = 2: po1% = 1 pc2% = pc1% + 2 po2% = po1% + 2 IF foot1y(po2%) > foot2y(po2%) THEN footy = foot1y(po2%) ELSE footy = foot2y(po2%) '---------------- Detect Hit IF projectilex(n%) > buttx(po1%) - 5 AND projectilex(n%) < buttx(po1%) + 5 AND projectiley(n%) > heady(po2%) AND projectiley(n%) < footy THEN SELECT CASE projectilet%(n%) '------------------------------------------------------------- Ball Lightning CASE 1 butth(po1%) = butth(po1%) + (projectileh(n%) / 5) pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (10), (1) IF position%(po1%) = 99 THEN particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 6, 25 ELSE soundticker% = 0: sbfx 19 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 10 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 5, 25 health%(po1%) = health%(po1%) - (ahpow%(pc1%) * 5) ko(po1%) = ko(po1%) - (akpow%(pc1%) * 5) IF ko(po1%) < 25 OR projectiley(n%) > butty(po1%) THEN fall (po1%) END IF '-------------------------------------------------------------------- L. Fire CASE 2 butth(po1%) = butth(po1%) + (projectileh(n%) / 10) pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (10), (4) IF position%(po1%) = 99 THEN particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 9, 25 ELSE soundticker% = 0: sbfx 25 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 17, 20 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 10 health%(po1%) = health%(po1%) - (ahpow%(pc1%) * 2) ko(po1%) = ko(po1%) - (akpow%(pc1%) * 2) IF ko(po1%) < 15 THEN fall (po1%) END IF '-------------------------------------------------------------------- S. Fire CASE 3 butth(po1%) = butth(po1%) + (projectileh(n%) / 10) pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (8), (4) IF position%(po1%) = 99 THEN particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 9, 15 ELSE soundticker% = 0: sbfx 25 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 17, 10 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 15, 5 ko(po1%) = ko(po1%) - akpow%(pc1%) butth(po1%) = butth(po1%) + (projectileh(n%) / 10) END IF '------------------------------------------------------------------- Nin-Star CASE 4 IF position%(po1%) = 99 THEN particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 6, 15 ELSE particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 0, 10 health%(po1%) = health%(po1%) - ahpow%(pc1%) ko(po1%) = ko(po1%) - akpow%(pc1%) END IF '------------------------------------------------------------------- E. Blast CASE 5 pscircle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), (20), (15) particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 5, 25 health%(po1%) = health%(po1%) - 10 ko(po1%) = ko(po1%) - 10 butth(po1%) = butth(po1%) + (projectileh(n%) / 2) IF position%(po1%) = 99 THEN bgcolor% = 1 ELSE soundticker% = 0: sbfx 21 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 20, 10 particle (projectilex(n%)), (projectiley(n%)), (fighterz(po1%)), 22, 10 bgcolor% = 9 health%(po1%) = health%(po1%) / 2 ko(po1%) = ko(po1%) / 2 fall (po1%) END IF '---------------------------------------------------------------------------+ END SELECT projectile%(n%) = 0 END IF END IF NEXT n% END SUB SUB pscircle (x, y, Z, r1, c%) '-------------------------------------------------------------------PS-Circle Z = Z + 1 IF Z = 0 THEN Z = .000001 x = (midx% + ((x - panx) / (Z * zoom))) y = (midy% + ((y - pany) / (Z * zoom))) r2 = r1 / (Z * zoom) fault$ = "ps" CIRCLE (x, y), r2, c% fault$ = "" END SUB SUB pscline (x1, y1, z1, x5, y5, z5, r, c%) x3 = ((x1 + x5) / 2) x2 = ((x1 + x3) / 2) x4 = ((x3 + x5) / 2) y3 = ((y1 + y5) / 2) y2 = ((y1 + y3) / 2) y4 = ((y3 + y5) / 2) z3 = ((z1 + z5) / 2) z2 = ((z1 + z3) / 2) z4 = ((z3 + z5) / 2) pscircle (x1), (y1), (z1), (r), (c%) pscircle (x2), (y2), (z2), (r), (c%) pscircle (x3), (y3), (z3), (r), (c%) pscircle (x4), (y4), (z4), (r), (c%) pscircle (x5), (y5), (z5), (r), (c%) END SUB SUB pscube (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%) '---------------------------------------------------------------------PS-Cube '---------far face psline (x1), (y1), (z2), (x2), (y2), (z2), (c3%), 1 '---------connect faces 'top/left psdpset (x1), (y1), (z1), (z2), (c2%) 'top/right psdpset (x2), (y1), (z1), (z2), (c2%) 'bottom/left psdpset (x1), (y2), (z1), (z2), (c2%) 'bottom/right psdpset (x2), (y2), (z1), (z2), (c2%) '---------near face psline (x1), (y1), (z1), (x2), (y2), (z1), (c1%), 1 END SUB SUB psdline (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, B%) '----------------------------------------------------------------PS Deep-Line '---------far line psline (x1), (y1), (z2), (x2), (y2), (z2), (c3%), 0 '---------connect lines IF B% = 1 THEN psdpset (x1), (y1), (z1), (z2), (c2%): psdpset (x2), (y2), (z1), (z2), (c2%) '---------near line psline (x1), (y1), (z1), (x2), (y2), (z1), (c1%), 0 END SUB SUB psdpset (x, y, z1, z2, c%) '---------------------------------------------------------------PS-Deep Point z1 = z1 + 1 7 z2 = z2 + 1 IF z1 = 0 THEN z1 = .000001 IF z2 = 0 THEN z2 = .000001 x3 = (midx% + ((x - panx) / (z1 * zoom))) y3 = (midy% + ((y - pany) / (z1 * zoom))) x4 = (midx% + ((x - panx) / (z2 * zoom))) y4 = (midy% + ((y - pany) / (z2 * zoom))) fault$ = "ps" LINE (x3, y3)-(x4, y4), c% fault$ = "" END SUB SUB pslightning (x1, y1, z1, x5, y5, z5, r, c%) x3 = ((x1 + x5) / 2) + ((RND - .5) * r) x2 = ((x1 + x3) / 2) + ((RND - .5) * r) x4 = ((x3 + x5) / 2) + ((RND - .5) * r) y3 = ((y1 + y5) / 2) + ((RND - .5) * r) y2 = ((y1 + y3) / 2) + ((RND - .5) * r) y4 = ((y3 + y5) / 2) + ((RND - .5) * r) z3 = ((z1 + z5) / 2) z2 = ((z1 + z3) / 2) z4 = ((z3 + z5) / 2) psline (x1), (y1), (z1), (x2), (y2), (z2), (c%), 0 psline (x2), (y2), (z2), (x3), (y3), (z3), (c%), 0 psline (x3), (y3), (z3), (x4), (y4), (z4), (c%), 0 psline (x4), (y4), (z4), (x5), (y5), (z5), (c%), 0 END SUB SUB psline (x1, y1, z1, x2, y2, z2, c%, B%) '---------------------------------------------------------------------PS-Line z1 = z1 + 1 z2 = z2 + 1 IF z1 = 0 THEN z1 = .000001 IF z2 = 0 THEN z2 = .000001 x3 = (midx% + ((x1 - panx) / (z1 * zoom))) y3 = (midy% + ((y1 - pany) / (z1 * zoom))) x4 = (midx% + ((x2 - panx) / (z2 * zoom))) y4 = (midy% + ((y2 - pany) / (z2 * zoom))) fault$ = "ps" SELECT CASE B% CASE 0: LINE (x3, y3)-(x4, y4), c% CASE 1: LINE (x3, y3)-(x4, y4), c%, B CASE 2: LINE (x3, y3)-(x4, y4), c%, BF CASE 3: LINE (x3, y3)-(x4, y4), c%, , &H1111 CASE 4: LINE (x3, y3)-(x4, y4), c%, B , &H1111 END SELECT fault$ = "" END SUB SUB psmark1 (x, y, Z, c1%, c2%, c3%) pspset (x), (y), (Z), (c3%) pspset (x), (y), (Z - .5), (c2%) pspset (x), (y), (Z - 1), (c1%) END SUB SUB psmark2 (x, y, c1%, c2%, c3%) pspset (x), (y), (1), (c3%) pspset (x), (y), (.5), (c2%) pspset (x), (y), (0), (c1%) END SUB SUB pspoint (x, y, Z) '------------------------------------------------------------------- PS-Point Z = Z + 1 IF Z = 0 THEN Z = .000001 x1 = (midx% + ((x - panx) / (Z * zoom))) y1 = (midy% + ((y - pany) / (Z * zoom))) fault$ = "ps" pointc% = POINT(x1, y1) fault$ = "" END SUB SUB pspset (x, y, Z, c%) '------------------------------------------------------------------- PS-Pset Z = Z + 1 IF Z = 0 THEN Z = .000001 x1 = (midx% + ((x - panx) / (Z * zoom))) y1 = (midy% + ((y - pany) / (Z * zoom))) fault$ = "ps" PSET (x1, y1), c% fault$ = "" END SUB SUB quit smallwindow LOCATE 10, 2: PRINT "Quit SFB2: Vector Warriors ?" LOCATE 11, 2: PRINT "" 5 wee$ = UCASE$(INKEY$) IF wee$ = "" THEN 5 IF wee$ = "Y" THEN IF sbsound% = 1 THEN sbinit SYSTEM END IF csmallwindow wee$ = "" END SUB SUB rain2d (c1%, c2%, c3%, l) REM-----------------------------------------------Draw Rain WINDOW SCREEN(0, 0)-(1, 1) FOR wee = 1 TO nstars% LINE (stars1x(wee), stars1y(wee))-(stars1x(wee), stars1y(wee) - l), c1% LINE (stars2x(wee), stars2y(wee))-(stars2x(wee), stars2y(wee) - l), c2% LINE (stars3x(wee), stars3y(wee))-(stars3x(wee), stars3y(wee) - l), c3% NEXT wee CALL window3d END SUB SUB rain3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%, l) REM-----------------------------------------------Draw Rain x2 = x2 - x1 y2 = y2 - y1 z2 = z2 - z1 FOR wee = 1 TO nstars% x3 = x1 + (stars1x(wee) * x2) y3 = y1 + (stars1y(wee) * y2) z3 = z1 + (stars1z(wee) * z2) psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c1%, 0 'IF y3 > floor1 THEN psline (x3 - 1), (y3), (z3), (x3 + 1), (y3), (z3), 1, 0 x3 = x1 + (stars2x(wee) * x2) y3 = y1 + (stars2y(wee) * y2) z3 = z1 + (stars2z(wee) * z2) psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c2%, 0 'IF y3 > floor1 THEN psline (x3 - 1), (y3), (z3), (x3 + 1), (y3), (z3), 9, 0 x3 = x1 + (stars3x(wee) * x2) y3 = y1 + (stars3y(wee) * y2) z3 = z1 + (stars3z(wee) * z2) psline (x3), (y3), (z3), (x3), (y3 - l), (z3), c3%, 0 'IF y3 > floor1 THEN psline (x3 - 2), (y3), (z3), (x3 + 2), (y3), (z3), 15, 0 NEXT wee END SUB SUB ringout (n) ringoutt% = 50 IF ringoutp% = 1 AND n = 2 THEN ringoutp% = 3 ELSE ringoutp% = n SELECT CASE stage% '---------------------------------------------------------------------------- CASE IS = 1, 2, 4 health%(n) = health%(n) - 5 '---------------------------------------------------------------------------- CASE IS = 3, 8, 15 IF buttx(n) > 0 THEN buttx(n) = ring% - 10 ELSE buttx(n) = -ring% + 10 butth(n) = 0 FOR wee = 1 TO particles% particle ((RND - .5) * 10), (floor1 - RND * 25), (midstage), 15, 1 NEXT wee IF n = 2 THEN win%(1) = win%(1) + 1 buttx(1) = 0 butty(1) = floor1 - 20 fighterfreeze 1 ELSE win%(2) = win%(2) + 1 buttx(2) = 0 butty(2) = floor1 - 20 fighterfreeze 2 END IF '------------ SCREEN , , 0, 0 IF win%(1) > 1 THEN PRINT name$(1) + " Wins the Match By Ringout": stage% = stage% + 1: setfightercpu IF win%(2) > 1 THEN PRINT name$(2) + " Wins the Match By Ringout" IF win%(1) > 1 OR win%(2) > 1 THEN wee = TIMER 35 IF TIMER - wee < 3 THEN 35 newmatch END IF '---------------------------------------------------------------------------- CASE IS = 9 IF butty(n) > 80 THEN health%(n) = health%(n) - 10 butth(n) = butth(n) / 2 pslightning buttx(n) + ((RND - .5) * 25), floor2, fighterz(n), neckx(n + 2), heady(n + 2) + (RND * 15), fighterz(n), 25, flash2% IF ABS(buttx(n)) < ring% + 25 THEN butth(n) = 0: health%(n) = 0 END IF '---------------------------------------------------------------------------- END SELECT END SUB SUB ringoutext (n) IF ticker% > 50 THEN IF ringoutt% < 3 THEN COLOR 4 ELSE COLOR 12 IF ringoutt% > 47 THEN COLOR 15 IF n = 3 THEN IF rez% > 7 THEN LOCATE 5, 30 ELSE LOCATE 5, 20 PRINT "Both Fighters Ringout" ELSE IF rez% > 7 THEN LOCATE 5, 30: PRINT name$(n) LOCATE 5, 45: PRINT "Ringout" ELSE LOCATE 5, 30: PRINT name$(n) LOCATE 6, 30: PRINT "Ringout" END IF END IF END IF END SUB DEFINT A-Z SUB sbfx (fxx%) IF soundticker% < 1 AND sbsound = 1 THEN soundticker% = soundwait% 'Freq%, Wave%, FEEDBACK%, Modl%, CLEN% SELECT CASE fxx% 'Jab CASE IS = 1 FOR wee = 1 TO 40 SBplay 100, 1, 1, 0, 1 NEXT wee CALL SBWrite(&HB0, &H0) 'Strong CASE IS = 2 FOR wee = 1 TO 60 SBplay 50, 1, 1, 0, 1 NEXT wee CALL SBWrite(&HB0, &H0) 'Short CASE IS = 3 FOR wee = 1 TO 45 SBplay 25, 1, 1, 0, 1 NEXT wee CALL SBWrite(&HB0, &H0) 'Round House CASE IS = 4 FOR wee = 1 TO 40 SBplay 1, 1, 1, 0, 1 NEXT wee CALL SBWrite(&HB0, &H0) 'Skidding on Ground CASE IS = 5 FOR wee = 1 TO 45 SBplay 150, 0, 14, 500, 150 NEXT wee CALL SBWrite(&HB0, &H0) 'Throw Fire/Dragon CASE IS = 6 FOR wee = 1 TO 45 SBplay 25, 0, 1000, 10, 261 NEXT wee CALL SBWrite(&HB0, &H0) 'Charge CASE IS = 7 FOR wee = 1 TO 45 SBplay 255, 0, 14, 16, 9 NEXT wee CALL SBWrite(&HB0, &H0) 'Burning CASE IS = 8 FOR wee = 1 TO 45 SBplay 25, 0, 1000, 10, 259 NEXT wee CALL SBWrite(&HB0, &H0) 'Hit 1 CASE IS = 9 FOR wee = 1 TO 45 SBplay 50, 0, 12, 100, 262 NEXT wee CALL SBWrite(&HB0, &H0) 'Hit 2 CASE IS = 10 FOR wee = 1 TO 45 SBplay 150, 0, 12, 100, 262 NEXT wee CALL SBWrite(&HB0, &H0) 'Hit 3 CASE IS = 11 FOR wee = 1 TO 45 SBplay 250, 0, 12, 100, 262 NEXT wee CALL SBWrite(&HB0, &H0) 'Gong 1 CASE IS = 12 FOR wee = 1 TO 45 SBplay 50, 2, 0, 13, 258 NEXT wee CALL SBWrite(&HB0, &H0) 'Tick CASE IS = 13 FOR wee = 1 TO 45 SBplay 0, 1, 10, 1, 15 NEXT wee CALL SBWrite(&HB0, &H0) 'Gong 2 CASE IS = 14 FOR wee = 1 TO 45 SBplay 100, 2, 16, 135, 258 NEXT wee CALL SBWrite(&HB0, &H0) 'Gong 3 CASE IS = 15 FOR wee = 1 TO 45 SBplay 50, 2, 0, 13, 259 NEXT wee CALL SBWrite(&HB0, &H0) 'Fan CASE IS = 16 FOR wee = 1 TO 45 SBplay 14, 1, 14, 15, 260 NEXT wee CALL SBWrite(&HB0, &H0) 'Chopping CASE IS = 17 FOR wee = 1 TO 45 SBplay 69, 1, 14, 5, 4 NEXT wee CALL SBWrite(&HB0, &H0) 'Laser 1 CASE IS = 18 FOR wee = 1 TO 45 SBplay 35, -1, 62, 0, 260 NEXT wee CALL SBWrite(&HB0, &H0) 'Shock 1 CASE IS = 19 FOR wee = 1 TO 45 SBplay 60, 3, 14, 15, 19 NEXT wee CALL SBWrite(&HB0, &H0) 'Slamming on Ground CASE IS = 20 FOR wee = 1 TO 45 SBplay 150, 0, 14, 500, 200 NEXT wee CALL SBWrite(&HB0, &H0) 'Shock 2 CASE IS = 21 FOR wee = 1 TO 45 SBplay 30, 3, 14, 15, 19 NEXT wee CALL SBWrite(&HB0, &H0) 'Button 1 CASE IS = 22 FOR wee = 1 TO 45 SBplay 200, 0, 1, 100, 262 NEXT wee CALL SBWrite(&HB0, &H0) 'Button 2 CASE IS = 23 FOR wee = 1 TO 45 SBplay 50, 1, 0, 50, 259 NEXT wee CALL SBWrite(&HB0, &H0) 'Button 3 CASE IS = 24 FOR wee = 1 TO 45 SBplay 100, 0, 10, 25, 262 NEXT wee CALL SBWrite(&HB0, &H0) 'Swizz Punches CASE IS = 25 FOR wee = 1 TO 45 SBplay 14, 0, 14, 15, 260 NEXT wee CALL SBWrite(&HB0, &H0) 'Conclusion CASE IS = 26 FOR wee = 1 TO 45 SBplay 200, 0, 0, 131, 2 NEXT wee CALL SBWrite(&HB0, &H0) END SELECT END IF END SUB SUB sbinit fault$ = "sb" LOCATE 1, 1 COLOR 15 PRINT "Initializing Sound Card" FOR Q = 1 TO &HF5 CALL SBWrite(Q, 0) NEXT Q LOCATE 1, 1 PRINT " " fault$ = "" END SUB SUB SBplay (Freq%, Wave%, Feedback%, Modl%, Clen%) 'Channel 1 'Operator 1 CALL SBWrite(&H20, Modl%) '&H51 CALL SBWrite(&H40, 10) '49 CALL SBWrite(&H60, &H40) '&HF0 CALL SBWrite(&H80, &H240) '&H77 CALL SBWrite(&HA0, Freq%) 'Freq% 'Operator 2 CALL SBWrite(&H23, 1) ' CALL SBWrite(&H43, 0) '49 CALL SBWrite(&H63, &HF0) ' CALL SBWrite(&H83, Clen%) 'CLEN% CALL SBWrite(&HB0, &H31) '&H31 CALL SBWrite(&HE0, Wave%) '0 or 1 CALL SBWrite(&HC0, Feedback%) ' END SUB SUB SBWrite (Reg%, Value%) fault$ = "sb" OUT &H220, Reg% FOR x = 0 TO SBWrite.delay1 a = INP(&H220) NEXT x OUT &H223, Value% FOR x = 0 TO SBWrite.delay2 a = INP(&H220) NEXT x fault$ = "" END SUB DEFSNG A-Z SUB setbody (n%) SELECT CASE body%(n%) CASE 1: maxhp%(n%) = 150: sdelay%(n%) = 5 CASE 2: maxhp%(n%) = 160: sdelay%(n%) = 8 CASE 3: maxhp%(n%) = 170: sdelay%(n%) = 9 CASE 4: maxhp%(n%) = 180: sdelay%(n%) = 15 CASE 5: maxhp%(n%) = 190: sdelay%(n%) = 18 CASE 6: maxhp%(n%) = 175: sdelay%(n%) = 10 CASE 7: maxhp%(n%) = 175: sdelay%(n%) = 11 CASE 8: maxhp%(n%) = 200: sdelay%(n%) = 20 CASE 666: maxhp%(n%) = 200: sdelay%(n%) = 5 CASE 2000: maxhp%(n%) = 200: sdelay%(n%) = 10 END SELECT health%(n%) = maxhp%(n%) END SUB SUB setcmethod CALL smallwindow LOCATE 10, 2: PRINT "Clear Method - Type" IF cmethod% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 12, 2: PRINT "1 No Clearing" IF cmethod% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "2 LINE BF" IF cmethod% = 2 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "3 CLS" IF cmethod% = 3 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, 2: PRINT "4 Horizontal Fade" IF cmethod% = 4 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 16, 2: PRINT "5 Block Fade" 16 wee$ = INKEY$ SELECT CASE wee$ CASE IS = "": GOTO 16 CASE IS = "1": cmethod% = 0 CASE IS = "2": cmethod% = 1 CASE IS = "3": cmethod% = 2 CASE IS = "4": cmethod% = 3 CASE IS = "5": cmethod% = 4 END SELECT '--------------------------------------------------------- IF cmethod% > 0 AND wee$ <> CHR$(27) THEN CALL csmallwindow CALL smallwindow LOCATE 10, 2: PRINT "Clear Method - Frequency" IF cfreq% = -1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 12, 2: PRINT "1 Always" IF cfreq% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "2 Often" IF cfreq% = 5 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "3 Rarely" 17 wee$ = INKEY$: IF wee$ = "" THEN 17 IF wee$ = "1" THEN cfreq% = -1 IF wee$ = "2" THEN cfreq% = 1 IF wee$ = "3" THEN cfreq% = 5 END IF CALL csmallwindow wee$ = "" END SUB SUB setdelay SCREEN , 0, 0 CALL smallwindow COLOR 15 LOCATE 10, 2: PRINT "Game Speed" IF rez% = 7 THEN LOCATE 12, 2: PRINT " LOW 00 10 20 30 40 50 60 70 80 90 HI" ELSE LOCATE 12, 2: PRINT "Slow 00 10 20 30 40 50 60 70 80 90 Fast" END IF COLOR 4 LOCATE 16, 2: PRINT "Press Spacebar To Save." d = delay% 15 wee$ = INKEY$ IF d = delay% THEN COLOR 15 LOCATE 13, 35 - INT(d / 2000): PRINT "^" ELSE COLOR 7 LOCATE 13, 35 - INT(d / 2000): PRINT "^" COLOR 9 LOCATE 13, 35 - INT(delay% / 2000): PRINT "^" END IF IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 35 - INT(d / 2000): PRINT " ": d = d - 2000 IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 35 - INT(d / 2000): PRINT " ": d = d + 2000 IF d < 0 THEN d = 0 IF d > 56000 THEN d = 56000 IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 35 - INT(delay% / 2000): PRINT " ": delay% = d IF wee$ <> CHR$(27) THEN 15 CALL csmallwindow wee$ = "" END SUB SUB setdetails smallwindow COLOR 15 LOCATE 10, 2: PRINT "Graphic Details" IF rez% > 7 THEN LOCATE 12, 2: PRINT "Stages" LOCATE 12, 12: PRINT "Fighters" LOCATE 12, 22: PRINT "HUD" LOCATE 12, 32: PRINT "Smears" LOCATE 12, 42: PRINT "Fighter Limits" n% = 10 ELSE LOCATE 12, 2: PRINT "Stgs" LOCATE 12, 10: PRINT "Ftrs" LOCATE 12, 18: PRINT "HUD" LOCATE 12, 26: PRINT "Smrs" LOCATE 12, 34: PRINT "FLim" n% = 8 END IF 33 '--- wee = 2 IF stagedetail% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, wee: PRINT "1 Low" IF stagedetail% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, wee: PRINT "2 High" wee = wee + n% '--- IF fighterdetail% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, wee: PRINT "3 Low" IF fighterdetail% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, wee: PRINT "4 High" wee = wee + n% '--- IF hudetail% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, wee: PRINT "5 Low" IF hudetail% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, wee: PRINT "6 High" wee = wee + n% '--- IF smears% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, wee: PRINT "7 Off" IF smears% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, wee: PRINT "8 On" wee = wee + n% '--- IF flimits% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, wee: PRINT "9 Off" IF flimits% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, wee: PRINT "0 On" wee$ = INKEY$ SELECT CASE wee$ CASE IS = "1": stagedetail% = 0 CASE IS = "2": stagedetail% = 1 CASE IS = "3": fighterdetail% = 0 CASE IS = "4": fighterdetail% = 1 CASE IS = "5": hudetail% = 0 CASE IS = "6": hudetail% = 1 CASE IS = "7": smears% = 0 CASE IS = "8": smears% = 1 CASE IS = "9": flimits% = 0 CASE IS = "0": flimits% = 1 END SELECT IF wee$ <> CHR$(27) THEN 33 '---------------------------------------------------------------------------- smallwindow wee$ = "" END SUB SUB setfighter bigwindow changed% = 0 zoomsave = zoom panxsave = panx panysave = pany zoom = fighterz(1) / 150 pany = butty(1) wee = 0 IF rez% = 7 THEN x% = -15 37 redraw% = 0 '---------------------------------------------------------------------------- IF head%(1) >= 100 THEN body%(1) = head%(1) arms%(1) = head%(1) hands%(1) = head%(1) legs%(1) = head%(1) feet%(1) = head%(1) END IF '-------------------------------------------------------------- Fighter Info. window2d LINE (5, 15.5)-(99, 89), 0, BF window3d IF rez% > 7 THEN 'Red Text (Titles) COLOR 4 'Left Panel LOCATE 6, 30: PRINT "Specials:" LOCATE 7, 30: PRINT "Q" LOCATE 8, 30: PRINT "W" LOCATE 10, 30: PRINT "A" LOCATE 11, 30: PRINT "S" LOCATE 13, 30: PRINT "Super:" LOCATE 14, 30: PRINT "D" LOCATE 16, 30: PRINT "Recharges:" LOCATE 17, 30: PRINT "RG:" LOCATE 18, 30: PRINT "AW:" 'Right Panel LOCATE 6, 55: PRINT "Arm Power Ratings:" LOCATE 7, 55: PRINT "HP:" LOCATE 8, 55: PRINT "AW:" LOCATE 9, 55: PRINT "Leg Power Ratings:" LOCATE 10, 55: PRINT "HP:" LOCATE 11, 55: PRINT "AW:" LOCATE 13, 55: PRINT "Jumping:" LOCATE 14, 55: PRINT "Alt Dis" LOCATE 16, 55: PRINT "Starting Conditions" LOCATE 17, 55: PRINT "HP:" LOCATE 18, 55: PRINT "AW:" LOCATE 20, 55: PRINT "Stun Duration" LOCATE 20, 30: PRINT "Name" 'Gray Text (Stats) COLOR 8 LOCATE 18, 59 SELECT CASE head%(1) CASE 1 PRINT "50%" LOCATE 17, 34: PRINT "4" LOCATE 18, 34: PRINT "2" CASE 2 PRINT "40%" LOCATE 17, 34: PRINT "3" LOCATE 18, 34: PRINT "3" CASE 3 PRINT "30%" LOCATE 17, 34: PRINT "2" LOCATE 18, 34: PRINT "4" CASE 4 PRINT "60%" LOCATE 17, 34: PRINT "5" LOCATE 18, 34: PRINT "1" CASE 5 PRINT "20%" LOCATE 17, 34: PRINT "1" LOCATE 18, 34: PRINT "5" END SELECT 'Hands LOCATE 7, 32 SELECT CASE hands%(1) CASE 1 PRINT "Fire Ball" LOCATE 8, 32 PRINT "Twin Mini Balls" CASE 2 PRINT "Power Jab" LOCATE 8, 32 PRINT "Hammer Punch" CASE 3 PRINT "Neck Jab" LOCATE 8, 32 PRINT "Thrust Slam" CASE 4 PRINT "Ball Lightning" LOCATE 8, 32 PRINT "Rising Dragon" CASE 5 PRINT "Triple Shrokken" LOCATE 8, 32 PRINT "Stun Knuckle" END SELECT 'Feet LOCATE 10, 32 SELECT CASE feet%(1) CASE 1 PRINT "Plant Kick" LOCATE 11, 32 PRINT "Nee Bash" CASE 2 PRINT "Axe Kick" LOCATE 11, 32 PRINT "Lightning Kick Blast" CASE 3 PRINT "Stunning Gut Stab" LOCATE 11, 32 PRINT "6-Slip" CASE 4 PRINT "Thrust Kick" LOCATE 11, 32 PRINT "Skip Kick" CASE 5 PRINT "Slasher Strike" LOCATE 11, 32 PRINT "Upper Assault" END SELECT LOCATE 7, 59 SELECT CASE arms%(1) CASE 1 PRINT "0" LOCATE 8, 59: PRINT "5" CASE 2 PRINT "2" LOCATE 8, 59: PRINT "3" CASE 3 PRINT "3" LOCATE 8, 59: PRINT "2" CASE 4 PRINT "1" LOCATE 8, 59: PRINT "4" CASE 5 PRINT "4" LOCATE 8, 59: PRINT "1" END SELECT LOCATE 14, 59 SELECT CASE legs%(1) CASE 1 PRINT "7" LOCATE 10, 59: PRINT "0" LOCATE 11, 59: PRINT "5" LOCATE 14, 69: PRINT "16" CASE 2 PRINT "10" LOCATE 10, 59: PRINT "2" LOCATE 11, 59: PRINT "3" LOCATE 14, 69: PRINT "14" CASE 3 PRINT "8" LOCATE 10, 59: PRINT "3" LOCATE 11, 59: PRINT "2" LOCATE 14, 69: PRINT "12" CASE 4 PRINT "14" LOCATE 10, 59: PRINT "3" LOCATE 11, 59: PRINT "1" LOCATE 14, 69: PRINT "10" CASE 5 PRINT "9" LOCATE 10, 59: PRINT "2" LOCATE 11, 59: PRINT "2" LOCATE 14, 69: PRINT "25" END SELECT LOCATE 17, 59 SELECT CASE body%(1) CASE 1 PRINT "150" LOCATE 14, 32: PRINT "Vex of Evil" LOCATE 21, 55: PRINT "5" CASE 2 PRINT "160" LOCATE 14, 32: PRINT "Energy Blast" LOCATE 21, 55: PRINT "8" CASE 3 PRINT "170" LOCATE 14, 32: PRINT "Spear Kick" LOCATE 21, 55: PRINT "9" CASE 4 PRINT "180" LOCATE 14, 32: PRINT "Health Up" LOCATE 21, 55: PRINT "15" CASE 5 PRINT "190" LOCATE 14, 32: PRINT "Razer Arms" LOCATE 21, 55: PRINT "18" CASE 6 PRINT "175" LOCATE 14, 32: PRINT "Neck Snapper" LOCATE 21, 55: PRINT "10" CASE 7 PRINT "175" LOCATE 14, 32: PRINT "Swizz Punches" LOCATE 21, 55: PRINT "11" CASE 8 PRINT "200" LOCATE 14, 32: PRINT "Upper Bust" LOCATE 21, 55: PRINT "20" END SELECT LOCATE 21, 30: PRINT name$(1) END IF '--------------------------------------------------------------- End of Stats '----------------------------------------------------------------- 3D Display panx = buttx(1) + x% smearender fighterender particlerender '--------------------------------------------------------------- Info Display COLOR 15 IF rez% > 7 THEN LOCATE 4, 34 ELSE LOCATE 4, 2 PRINT "BUILD FIGHTER" LOCATE 22, 6: COLOR 15: PRINT "MORE" '------------------------------------- Mode 0 (Info Display) IF sfmode% = 0 THEN COLOR 12 LOCATE 6, 6: PRINT "PART TYPE" COLOR 15 LOCATE 7, 6: PRINT "Head "; head%(1); " " LOCATE 8, 6: PRINT "Body "; body%(1); " " LOCATE 9, 6: PRINT "Arms "; arms%(1); " " LOCATE 10, 6: PRINT "Hands "; hands%(1); " " LOCATE 11, 6: PRINT "Legs "; legs%(1); " " LOCATE 12, 6: PRINT "Feet "; feet%(1); " " COLOR 12 LOCATE 14, 6: PRINT "PART COLOR" COLOR 15 LOCATE 15, 6: PRINT "Head" LOCATE 16, 6: PRINT "Body" LOCATE 17, 6: PRINT "Arms" LOCATE 18, 6: PRINT "Hands" LOCATE 19, 6: PRINT "Legs" LOCATE 20, 6: PRINT "Feet" LOCATE 15, 17: COLOR headc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) LOCATE 16, 17: COLOR bodyc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) LOCATE 17, 17: COLOR armsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) LOCATE 18, 17: COLOR handsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) LOCATE 19, 17: COLOR legsc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) LOCATE 20, 17: COLOR feetc%(1) + 8: PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) COLOR 15 '------------------------------------- Mode 1 (Info Display) ELSE COLOR 12 LOCATE 6, 6: PRINT "NAME" COLOR 15 LOCATE 7, 6: PRINT "Enter " LOCATE 8, 6: PRINT "Generate " COLOR 12 LOCATE 10, 6: PRINT "HAIR" COLOR 15 SELECT CASE hairt%(1) CASE 1: hairt$ = "Strait" CASE 2: hairt$ = "Braid " END SELECT LOCATE 11, 6: PRINT "Style "; hairt$ SELECT CASE hairl%(1) CASE 0: hairl$ = "Bald " CASE 1: hairl$ = "Short " CASE 2: hairl$ = "Medium" CASE 3: hairl$ = "Long " END SELECT LOCATE 12, 6: PRINT "Length "; hairl$ LOCATE 13, 6: PRINT "Color ": LOCATE 13, 17: COLOR hairc%(1): PRINT CHR$(219); CHR$(178); CHR$(177); CHR$(176) COLOR 12 LOCATE 15, 6: PRINT "MISC." COLOR 15 IF solidc% = 1 THEN wee$ = "Solid" ELSE wee$ = "Multi" LOCATE 16, 6: PRINT "Opponent Colors - "; wee$ END IF '---------------------------------------------------------------------------- IF ptfighter% < 7 THEN ptfighter% = 7 DO wee$ = UCASE$(INKEY$) 'Shift 3D Display IF wee$ = "4" OR wee$ = CHR$(0) + "K" THEN x% = 0: redraw% = 1 IF wee$ = "6" OR wee$ = CHR$(0) + "M" THEN x% = -15: redraw% = 1 IF head%(1) < 100 THEN SELECT CASE wee$ CASE "š" changed% = 1 head%(1) = 666 nee1x(3) = buttx(1) - 3 * d%(1) nee2x(3) = buttx(1) - 3 * d%(1) foot1x(3) = nee1x(3) + 5 * d%(1) foot2x(3) = nee2x(3) + 5 * d%(1) name$(1) = "Demize" GOTO 37 CASE "Î": head%(1) = 1998: changed% = 1: GOTO 37 CASE "Ð": head%(1) = 2000: changed% = 1: GOTO 37 END SELECT END IF '----------------------------------------------------------------- Move Arrow SELECT CASE wee$ CASE IS = "8", CHR$(0) + "H" LOCATE ptfighter%, 2: PRINT " ": ptfighter% = ptfighter% - 1 IF ptfighter% = 6 THEN ptfighter% = 7 IF sfmode% = 0 THEN IF ptfighter% = 14 THEN ptfighter% = 12 IF ptfighter% = 21 THEN ptfighter% = 20 ELSE IF ptfighter% = 10 THEN ptfighter% = 8 IF ptfighter% = 15 THEN ptfighter% = 13 IF ptfighter% = 21 THEN ptfighter% = 16 END IF '--------------+ CASE IS = "5", "2", CHR$(0) + "P" LOCATE ptfighter%, 2: PRINT " ": ptfighter% = ptfighter% + 1 IF ptfighter% = 23 THEN ptfighter% = 22 IF sfmode% = 0 THEN IF ptfighter% = 13 THEN ptfighter% = 15 IF ptfighter% = 21 THEN ptfighter% = 22 ELSE IF ptfighter% = 9 THEN ptfighter% = 11 IF ptfighter% = 14 THEN ptfighter% = 16 IF ptfighter% = 17 THEN ptfighter% = 22 END IF END SELECT LOCATE ptfighter%, 2: PRINT CHR$(16) '--------------------------------------------------------------------- Select IF wee$ = " " OR wee$ = CHR$(13) THEN redraw% = 1 wee$ = "" '------------------------------------- Mode 0 (Selection) IF sfmode% = 0 THEN IF ptfighter% <= 12 THEN changed% = 1 SELECT CASE ptfighter% CASE IS = 7 IF head%(1) >= 100 THEN head%(1) = 1 body%(1) = 1 arms%(1) = 1 hands%(1) = 1 legs%(1) = 1 feet%(1) = 1 nee1x(3) = buttx(1) + 5 nee2x(3) = buttx(1) - 1 foot1x(3) = nee1x(3) - 1 foot2x(3) = nee2x(3) - 3 ELSE IF head%(1) < 5 THEN head%(1) = head%(1) + 1 ELSE head%(1) = 1 END IF CASE IS = 9 IF arms%(1) < 5 THEN arms%(1) = arms%(1) + 1 ELSE arms%(1) = 1 CASE IS = 10 IF hands%(1) < 5 THEN hands%(1) = hands%(1) + 1 ELSE hands%(1) = 1 CASE IS = 8 IF body%(1) < 8 THEN body%(1) = body%(1) + 1 ELSE body%(1) = 1 CASE IS = 11 IF legs%(1) < 5 THEN legs%(1) = legs%(1) + 1 ELSE legs%(1) = 1 CASE IS = 12 IF feet%(1) < 5 THEN feet%(1) = feet%(1) + 1 ELSE feet%(1) = 1 '-------------------- CASE IS = 15 IF headc%(1) < 15 THEN headc%(1) = headc%(1) + 1 ELSE headc%(1) = 1 CASE IS = 16 IF bodyc%(1) < 15 THEN bodyc%(1) = bodyc%(1) + 1 ELSE bodyc%(1) = 1 CASE IS = 17 IF armsc%(1) < 7 THEN armsc%(1) = armsc%(1) + 1 ELSE armsc%(1) = 1 CASE IS = 18 IF handsc%(1) < 7 THEN handsc%(1) = handsc%(1) + 1 ELSE handsc%(1) = 1 CASE IS = 19 IF legsc%(1) < 7 THEN legsc%(1) = legsc%(1) + 1 ELSE legsc%(1) = 1 CASE IS = 20 IF feetc%(1) < 7 THEN feetc%(1) = feetc%(1) + 1 ELSE feetc%(1) = 1 '-------------------- CASE IS = 22 sfmode% = 1: redraw% = 1 LOCATE ptfighter%, 2: PRINT " " ptfighter% = 7 END SELECT '------------------------------------- Mode 1 (Selection) ELSE SELECT CASE ptfighter% CASE IS = 7 LOCATE 21, 30: PRINT " " LOCATE 21, 30 COLOR 15 INPUT ; "", name$(1) CASE IS = 8 fightername (1) CASE IS = 11 IF hairt%(1) = 1 THEN hairt%(1) = 2 ELSE hairt%(1) = 1 CASE IS = 12 IF hairl%(1) < 3 THEN hairl%(1) = hairl%(1) + 1 ELSE hairl%(1) = 0 CASE IS = 13 IF hairc%(1) < 15 THEN hairc%(1) = hairc%(1) + 1 ELSE hairc%(1) = 1 CASE IS = 16 IF solidc% = 1 THEN solidc% = 0 ELSE solidc% = 1 CASE IS = 22 sfmode% = 0: redraw% = 1 LOCATE ptfighter%, 2: PRINT " " ptfighter% = 7 END SELECT END IF END IF '---------------------------------------------------------------------------- IF redraw% = 1 THEN 37 LOOP UNTIL wee$ = CHR$(27) cbigwindow wee$ = "" zoom = zoomsave panx = panxsave pany = panysave IF changed% = 1 THEN stageinit '---------------------------------------------------------------------------- END SUB SUB setfightercpu IF stage% < 1000 THEN 'Normal hairt%(2) = INT(RND * 2) + 1 hairl%(2) = INT(RND * 4) hairc%(2) = INT(RND * 15) + 1 head%(2) = INT(RND * 5) + 1 arms%(2) = INT(RND * 5) + 1 hands%(2) = INT(RND * 4) + 1 body%(2) = INT(RND * 8) + 1 legs%(2) = INT(RND * 5) + 1 feet%(2) = INT(RND * 5) + 1 ELSE 'Master Bean hairl%(2) = 3 hairt%(2) = 1 head%(2) = 2000 arms%(2) = 2000 hands%(2) = 2000 body%(2) = 2000 legs%(2) = 2000 feet%(2) = 2000 END IF IF stage% < 1000 THEN IF solidc% = 1 THEN 'Solid Colors c% = INT(RND * 7) + 1 headc%(2) = c% + 8 bodyc%(2) = c% + 8 armsc%(2) = c% handsc%(2) = c% legsc%(2) = c% feetc%(2) = c% ELSE 'Normal Colors headc%(2) = INT(RND * 15) + 1 bodyc%(2) = INT(RND * 15) + 1 armsc%(2) = INT(RND * 7) + 1 handsc%(2) = INT(RND * 7) + 1 legsc%(2) = INT(RND * 7) + 1 feetc%(2) = INT(RND * 7) + 1 END IF ELSE 'Master Bean's Colors hairc%(2) = 4 headc%(2) = 9 bodyc%(2) = 1 armsc%(2) = 4 handsc%(2) = 1 legsc%(2) = 4 feetc%(2) = 1 END IF IF stage% = 15 THEN hairl%(2) = 0 head%(2) = 666 arms%(2) = 666 hands%(2) = 666 body%(2) = 666 legs%(2) = 666 feet%(2) = 666 headc%(2) = 4 bodyc%(2) = 4 armsc%(2) = 4 handsc%(2) = 4 legsc%(2) = 4 feetc%(2) = 8 END IF END SUB SUB setframeskip CALL smallwindow LOCATE 10, 2: PRINT "Change Frame Skip Value" IF frameskip% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 12, 2: PRINT "1 Render Everything" IF frameskip% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "2 Skip Some Frames" IF frameskip% = 3 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "3 Skip Many Frames" IF frameskip% = 5 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, 2: PRINT "4 Skip Most Frames" 10 wee$ = INKEY$: IF wee$ = "" THEN 10 IF wee$ = "1" THEN frameskip% = 0 IF wee$ = "2" THEN frameskip% = 1 IF wee$ = "3" THEN frameskip% = 3 IF wee$ = "4" THEN frameskip% = 5 CALL csmallwindow wee$ = "" END SUB SUB seti16 smallwindow LOCATE 10, 2: PRINT "i16 Options" IF i16m% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 12, 2: PRINT "1 Show All i16" IF i16m% = 1 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "2 No i16 in Stage Select" IF i16m% = 2 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "3 Don't Show any i16" 12 wee$ = INKEY$: IF wee$ = "" THEN 12 SELECT CASE wee$ CASE IS = "1": i16m% = 0 CASE IS = "2": i16m% = 1 CASE IS = "3": i16m% = 2 END SELECT csmallwindow END SUB SUB setko (n) SELECT CASE head%(n) CASE 1: ko(n) = 50 CASE 2: ko(n) = 40 CASE 3: ko(n) = 30 CASE 4: ko(n) = 60 CASE 5: ko(n) = 20 CASE 666: ko(n) = 100 END SELECT END SUB SUB setparticles particleclear zoomsave = zoom panxsave = panx panysave = pany ringsave% = ring% zoom = .35 panx = 0 pany = 0 ring% = 0 CALL smallwindow LOCATE 10, 2: PRINT "Max Number of Particles to Display" IF rez% = 7 THEN LOCATE 12, 2: PRINT " LOW 00 10 20 30 40 50 60 70 80 90 HI" ELSE LOCATE 12, 2: PRINT "None 00 10 20 30 40 50 60 70 80 90 Many" END IF COLOR 4 LOCATE 16, 2: PRINT "Press Spacebar To Save." p% = particles% PCOPY 0, 1 25 wee$ = INKEY$ '------------------------ IF rez% > 7 THEN pflip 'Delay flicker = TIMER: DO UNTIL TIMER - flicker > .000005: LOOP window2d LINE (60, 37)-(70, 63), 0, BF LINE (5, 48)-(45, 49), 0, BF window3d particle 50, 45, 1, 16, 2 particle 50, 45, 1, 15, 1 decay particlemove particlerender END IF '------------------------ IF p% = particles% THEN COLOR 15 LOCATE 13, 7 + INT(p% / 3.3): PRINT "^" ELSE COLOR 7 LOCATE 13, 7 + INT(p% / 3.3): PRINT "^" COLOR 9 LOCATE 13, 7 + INT(particles% / 3.3): PRINT "^" END IF IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 7 + INT(p% / 3.3): PRINT " ": p% = p% + 10 IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 7 + INT(p% / 3.3): PRINT " ": p% = p% - 10 IF p% < 0 THEN p% = 0 IF p% > 90 THEN p% = 90 IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 7 + INT(particles% / 3.3): PRINT " ": particles% = p% IF wee$ <> CHR$(27) THEN 25 particleclear CALL csmallwindow wee$ = "" zoom = zoomsave panx = panxsave pany = panysave ring% = ringsave% SCREEN , , 0, 0 END SUB SUB setpath SCREEN 9 IF rez% > 0 THEN smallwindow END IF LOCATE 10, 2: PRINT "SET PATH" LOCATE 11, 2: PRINT "Please give the working directory of this program." LOCATE 12, 2: PRINT "Ex. C:\SFB2" LOCATE 13, 2: INPUT "", path$ path$ = UCASE$(path$) LOCATE 14, 2: PRINT "Would you like save this info as C:\SFB2.PTH [Y/N]?" 30 wee$ = UCASE$(INKEY$): IF wee$ = "" THEN 30 IF wee$ = "Y" THEN OPEN "c:\sfb2.pth" FOR OUTPUT AS #1 WRITE #1, path$ CLOSE #1 END IF IF rez% > 0 THEN csmallwindow CLS END SUB SUB setrez CALL smallwindow LOCATE 10, 2: PRINT "Change Screen Resolution" IF rez% = 7 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "1 (320x200)" IF rez% = 8 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "2 (640x200)" IF rez% = 9 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, 2: PRINT "3 (640x350)" 6 wee$ = INKEY$: IF wee$ = "" THEN 6 IF wee$ = "1" THEN rez% = 7 IF wee$ = "2" THEN rez% = 8 IF wee$ = "3" THEN rez% = 9 IF wee$ = CHR$(27) THEN 11 IF wee$ <> "1" AND wee$ <> "2" AND wee$ <> "3" AND wee$ <> "4" AND wee$ <> "5" THEN 6 11 CALL csmallwindow SCREEN rez% CALL window3d 'IF rez% = 8 THEN CALL page2 wee$ = "" END SUB SUB setsound smallwindow LOCATE 10, 2: PRINT "Sound Quality Options" IF sbsound% = 1 AND soundwait% = 3 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 12, 2: PRINT "1 Best" IF sbsound% = 1 AND soundwait% = 4 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 13, 2: PRINT "2 Good" IF sbsound% = 1 AND soundwait% = 6 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 14, 2: PRINT "3 Ok" IF sbsound% = 1 AND soundwait% = 10 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 15, 2: PRINT "4 Chunky" IF sbsound% = 0 THEN mark = 15 ELSE mark = 7 COLOR mark: LOCATE 16, 2: PRINT "5 No Sound" 29 wee$ = INKEY$: IF wee$ = "" THEN 29 IF wee$ = "1" THEN sbsound% = 1: soundwait% = 3 IF wee$ = "2" THEN sbsound% = 1: soundwait% = 4 IF wee$ = "3" THEN sbsound% = 1: soundwait% = 6 IF wee$ = "4" THEN sbsound% = 1: soundwait% = 10 IF wee$ = "5" THEN sbsound% = 0 IF sbsound% = 1 THEN sbinit csmallwindow wee$ = "" END SUB SUB setstage CALL bigwindow COLOR 15: LOCATE 4, 2: PRINT "Select Stage" COLOR 7: LOCATE 21, 2: PRINT "Press Spacebar To Select" COLOR 4 window2d stagewindow 0 x% = 20: y% = 35 27 IF x% > 0 AND x% < 100 THEN LINE (x% - 9.5, y% - 9.5)-(x% + 9.5, y% + 9.5), 12, B IF x% = 20 AND y% = 35 THEN Slot% = 1 IF x% = 50 AND y% = 35 THEN Slot% = 2 IF x% = 80 AND y% = 35 THEN Slot% = 3 IF x% = 20 AND y% = 65 THEN Slot% = 4 IF x% = 50 AND y% = 65 THEN Slot% = 5 IF x% = 80 AND y% = 65 THEN Slot% = 6 SELECT CASE stageset% CASE IS = 0: stagepage% = 1 CASE IS = 6: stagepage% = 2 CASE IS = 12: stagepage% = 3 CASE IS = 18: stagepage% = 4 END SELECT IF rez% > 7 THEN LOCATE 4, 64: PRINT "Page"; stagepage%; "Stage"; stageset% + Slot% ELSE LOCATE 4, 32: PRINT stagepage%; "/"; stageset% + Slot% END IF 'Display Stage Name setstagename (Slot% + stageset%) LOCATE 22, 2: PRINT stagename$ wee$ = INKEY$ IF wee$ <> "" THEN LINE (x% - 9.5, y% - 9.5)-(x% + 9.5, y% + 9.5), 0, B IF stageset% > 0 THEN arrow1% = 1: c% = 12 ELSE arrow1% = 0: c% = 0 LINE (5, 50)-(8, 40), c% LINE (5, 50)-(8, 60), c% LINE (8, 40)-(8, 60), c% IF stageset% < 12 THEN arrow2% = 1: c% = 12 ELSE arrow2% = 0: c% = 0 LINE (95, 50)-(92, 40), c% LINE (95, 50)-(92, 60), c% LINE (92, 40)-(92, 60), c% IF wee$ = CHR$(0) + "K" OR wee$ = "4" THEN IF x% = 20 THEN IF arrow1% = 1 THEN stageset% = stageset% - 6: x% = 80: stagewindow 1 ELSE x% = x% - 30 END IF END IF IF wee$ = CHR$(0) + "M" OR wee$ = "6" THEN IF x% = 80 THEN IF arrow2% = 1 THEN stageset% = stageset% + 6: x% = 20: stagewindow 2 ELSE x% = x% + 30 END IF END IF IF wee$ = CHR$(0) + "P" OR wee$ = "5" OR wee$ = "2" THEN IF y% = 35 THEN y% = 65 IF wee$ = CHR$(0) + "H" OR wee$ = "8" THEN IF y% = 65 THEN y% = 35 IF y% < 35 THEN y% = 35 IF y% > 65 THEN y% = 65 IF wee$ = " " OR wee$ = CHR$(13) THEN stage% = stageset% + Slot% stageinit setfightercpu END IF IF wee$ <> CHR$(27) AND wee$ <> " " AND wee$ <> CHR$(13) THEN 27 window3d cbigwindow setstagename (stage%) END SUB SUB setstagename (n%) SELECT CASE n% CASE 1: stagename$ = "Demon's Alter " CASE 2: stagename$ = "V-Wing Class B-01 " CASE 3: stagename$ = "Elky's Arena " CASE 4: stagename$ = "Jungle Raft Ride " CASE 5: stagename$ = "Defence Complex 10 " CASE 6: stagename$ = "Picketed Claustrophobia " CASE 7: stagename$ = "Crushing Casket " CASE 8: stagename$ = "Silence " CASE 9: stagename$ = "Extended Altitude 1 " CASE 10: stagename$ = "Pain By The Inch " CASE 11: stagename$ = "79th Street " CASE 12: stagename$ = "Extended Altitude 2 " CASE 13: stagename$ = "Rest In Pieces " CASE 14: stagename$ = "Endangered " CASE 15: stagename$ = "Lair Of Demize " CASE 16: stagename$ = "Empty Slot (Stage 16) " CASE 17: stagename$ = "Empty Slot (Stage 17) " CASE 18: stagename$ = "Empty Slot (Stage 18) " CASE 1000: stagename$ = "Master Bean's Dojo " CASE 1001: stagename$ = "Dojo (Tutorial) " CASE 1002: stagename$ = "Dojo (Training) " END SELECT END SUB SUB setstars zoomsave = zoom panxsave = panx panysave = pany zoom = 1 panx = 0 pany = 0 CALL smallwindow LOCATE 10, 2: PRINT "Number of Stars to Display" LOCATE 12, 2: PRINT "Min | | | | Med | | | | Max" COLOR 4 LOCATE 16, 2: PRINT "Press Spacebar To Save." s% = nstars% 26 wee$ = INKEY$ IF rez% <> 7 THEN stars3d 50, -50, 0, 230, 50, .5, 15, 15, 15 stars3d 50, -50, 0, 230, 50, .5, 0, 0, 0 starsoffset -.001, .001 pscube 50, -50, 0, 230, 50, .5, 12, 4, 4 END IF IF s% = nstars% THEN COLOR 15 LOCATE 13, 6 + s%: PRINT "^" ELSE COLOR 7 LOCATE 13, 6 + s%: PRINT "^" COLOR 9 LOCATE 13, 6 + nstars%: PRINT "^" END IF IF wee$ = "6" OR wee$ = CHR$(0) + "M" OR wee$ = "+" OR wee$ = "=" THEN LOCATE 13, 6 + s%: PRINT " ": s% = s% + 2 IF wee$ = "4" OR wee$ = CHR$(0) + "K" OR wee$ = "-" THEN LOCATE 13, 6 + s%: PRINT " ": s% = s% - 2 IF s% < 0 THEN s% = 0 IF s% > 20 THEN s% = 20 IF wee$ = " " OR wee$ = CHR$(13) THEN LOCATE 13, 6 + nstars%: PRINT " ": nstars% = s% IF wee$ <> CHR$(27) THEN 26 CALL csmallwindow wee$ = "" zoom = zoomsave panx = panxsave pany = panysave END SUB SUB settings 2 redraw% = 0 bigwindow COLOR 15, 0 IF rez% = 7 THEN LOCATE 4, 17: PRINT "SETTINGS" ELSE LOCATE 4, 37: PRINT "SETTINGS" END IF LOCATE 6, 6: PRINT "Screen Resolution" LOCATE 8, 6: PRINT "Frame Skipping" LOCATE 10, 6: PRINT "Game Speed" LOCATE 12, 6: PRINT "Clear Method" LOCATE 14, 6: PRINT "Stars" LOCATE 16, 6: PRINT "Particles" LOCATE 18, 6: PRINT "i16 Images" LOCATE 20, 6: PRINT "Graphic Details" LOCATE 22, 6: PRINT "Sound" IF ptsettings% = 0 THEN ptsettings% = 6 DO wee$ = UCASE$(INKEY$) '----------------------------------------------------------------- Move Arrow SELECT CASE wee$ CASE IS = "8", CHR$(0) + "H" LOCATE ptsettings%, 2: PRINT " " IF ptsettings% > 6 THEN ptsettings% = ptsettings% - 2 ELSE ptsettings% = 22 CASE IS = "5", "2", CHR$(0) + "P" LOCATE ptsettings%, 2: PRINT " " IF ptsettings% < 22 THEN ptsettings% = ptsettings% + 2 ELSE ptsettings% = 6 END SELECT LOCATE ptsettings%, 2: PRINT CHR$(16) '--------------------------------------------------------------------- Select IF wee$ = " " OR wee$ = CHR$(13) THEN redraw% = 1 wee$ = "" SELECT CASE ptsettings% CASE IS = 6 setrez CASE IS = 8 setframeskip CASE IS = 10 setdelay CASE IS = 12 setcmethod CASE IS = 14 setstars CASE IS = 16 setparticles CASE IS = 18 seti16 CASE IS = 20 setdetails CASE IS = 22 setsound END SELECT END IF IF redraw% = 1 THEN 2 LOOP UNTIL wee$ = CHR$(27) cbigwindow wee$ = "" END SUB SUB smallwindow SCREEN , 0, 0 COLOR , 0 FOR wee = 0 TO 248 STEP 1 LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), INT((RND * 2) + 7) NEXT wee LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), 0, BF LINE (midx% - wee, midy% - 75)-(midy% + wee, midy% + 75), 15, B END SUB SUB smear (x%, y%, Z, c%) IF stage% = 4 THEN EXIT SUB DO UNTIL exitloop% = 1 OR wee = 10 wee = wee + 1 IF smearl%(wee) = 0 OR smearl%(wee) > 300 THEN exitloop% = 1 smearl%(wee) = 1 smearc%(wee) = c% smearx%(wee) = x% smeary%(wee) = y% smearz(wee) = Z END IF LOOP END SUB SUB smearender FOR wee = 1 TO 10 IF smearl%(wee) > 0 THEN l = smearl%(wee) / 10 IF l > 5 THEN l = 5 psline (smearx%(wee) - l), (smeary%(wee)), (smearz(wee)), (smearx%(wee) + l), (smeary%(wee)), (smearz(wee)), smearc%(wee), 0 END IF NEXT wee END SUB SUB splash (n) particle (buttx(n)), (butty(n) + (RND * 20)), (fighterz(n)), 11, 1 particle (buttx(n)), (butty(n) + 20), (fighterz(n)), 12, 1 END SUB SUB stagebackground SELECT CASE stage% '---------------------------------------------------------------------------- CASE IS = 1 'lava psdline -500, 100, 2, 500, 100, 13, 4, 12, 4, 1 IF stagedetail% = 1 THEN psdline -375, 100 + bob, 3, 375, 100 - bob, 12, 4, 12, 4, 1 psdline -250, 100 - bob, 4, 250, 100 + bob, 11, 12, 4, 12, 1 psdline -125, 100 + bob, 5, 125, 100 - bob, 10, 4, 12, 4, 1 END IF 'pillar pscube -15, 15, 7, 15, 100, 8, 7, 8, 8 'steam stars3d -500, 50, 2, 500, 100, 13, 5, (flash3%), 12 starsoffset 0, -.01 'ring pscube -200, 0, 5, 200, 15, 10, 7, 7, 7 FOR wee = -100 TO 100 STEP 100 psdpset (wee), 0, 5.1, 9.9, 8 NEXT wee FOR wee = 6.25 TO 9.75 STEP 1.25 psline -199, 0, (wee), 199, 0, (wee), 8, 0 NEXT wee 'alter pscube -15, -50, 7, 15, 0, 8, 6, 4, 4 IF stagedetail% = 1 THEN psline -9, -20, 7, 9, -20, 7, 6, 0 psline -6, -35, 7, 0, -12, 7, 6, 0 psline 6, -35, 7, 0, -12, 7, 6, 0 psline -6, -35, 7, 9, -20, 7, 6, 0 psline 6, -35, 7, -9, -20, 7, 6, 0 END IF pscircle 0, -25, 7, 10, 4 '---------------------------------------------------------------------------- CASE IS = 2 stars2d 7, 7, 15 starsoffset -.01, 0 'far wing psline -500, -75, 4.5, 100, -75, 6.5, 8, 0 psline -250, -75, 4.5, 100, -75, 6.5, 7, 0 'nose psline 200, 0, 4, 400, 40, 3.5, 8, 0 psline 200, 0, 3, 400, 40, 3.5, 15, 0 'exhaust stars3d -900, -25, 2.5, -625, 75, 4, 9, (flash1%), 15 'hull psdline -600, 75, 2.5, -300, 75, 4.5, 15, 7, 8, 1 psline -300, 75, 4.5, -200, 40, 3.5, 8, 0 psline -300, 75, 2.5, -200, 40, 3.5, 15, 0 psline -200, 40, 3.5, 400, 40, 3.5, 7, 0 FOR wee = -150 TO 150 STEP 50 psdpset (wee), 0, 3, 4, 7 NEXT wee psdline -200, 0, 3, 200, 0, 4, 15, 7, 8, 1 'cargo area IF stagedetail% = 1 THEN psline -800, -150, 3.5, -650, -75, 4.5, 8, 0 psline -800, -150, 3.5, -650, -75, 2.5, 15, 0 psline -800, -150, 3.5, -350, -150, 3.5, 7, 0 psline -350, -150, 3.5, -250, -75, 4.5, 8, 0 psline -350, -150, 3.5, -250, -75, 2.5, 15, 0 END IF psdline -650, -75, 2.5, -250, -75, 4.5, 15, 7, 8, 1 psdline -650, -75, 2.5, -600, 75, 4.5, 15, 7, 8, 1 psline -250, -75, 4.5, -200, 0, 4, 8, 0 psline -250, -75, 2.5, -200, 0, 3, 15, 0 '---------------------------------------------------------------------------- CASE IS = 3 'horizon window2d LINE (0, 50)-(100, 50), 8 window3d 'Ground psdline -500, 115, 1, 500, 115, 20, 0, 7, 8, 1 'Ceiling pscube -150, -45, 3, 150, -50, 8, 15, 7, 8 'Floor pscube -150, 110, 3, 150, 115, 8, 15, 7, 8 'Back Struts IF stagedetail% = 1 THEN pscube -145, -45, 7, -125, 110, 7.5, 15, 7, 8 pscube 145, -45, 7, 125, 110, 7.5, 15, 7, 8 END IF 'Ring pscube -100, 100, 4, 100, 110, 7, 15, 7, 8 FOR wee = -60 TO 60 STEP 40 psdpset (wee), 100, 4, 7, 7 NEXT wee FOR wee = 4.5 TO 6.5 STEP 1 psline -100, 100, (wee), 100, 100, (wee), 7, 0 NEXT wee '---------------------------------------------------------------------------- CASE IS = 4 starsoffset -.002, 0 'Trees IF stagedetail% = 1 THEN FOR wee = -2000 TO 1000 STEP 1500 psdline wee + wx, -500, 5, wee + wx, 10, 15, 6, 0, 4, 0 NEXT wee FOR wee = -4000 TO -2000 STEP 1000 psdline wee + 250 + wx, -400, 10, wee + 250 + wx, 0, 20, 6, 0, 4, 0 NEXT wee FOR wee = -3000 TO 1000 - ticker% STEP 500 psline wee + wx, -400, 25, wee + wx, -700, 1, 2, 0 NEXT wee FOR wee = -5000 TO 1000 - ticker% STEP 1000 psline wee + wx, -400, 15, wee + wx, -1000, 1, 2, 0 NEXT wee END IF 'end trees IF ticker% < 1000 THEN stars3d -1000 + wx, wy, 2, -500 + wx, 1 + wy, 6, 9, (flash1%), 15 psline -1000 + wx, wy, 6, -1100 + wx, 100 + wy, 6, 1, 0 psline -1000 + wx, wy, 6, 500 + wx, wy, 6, 1, 0 psline 500 + wx, wy, 6, 1000 + wx, wy, 4, 1, 0 psline -2000 + wx, 100 + wy, 6, -1100 + wx, 100 + wy, 6, 1, 0 psline -3000 + wx, 200 + wy, 6, -2000 + wx, 100 + wy, 6, 1, 0 ELSE psline -2000 + wx, 100 + wy, 6, -1100 + wx, 100 + wy, 6, 1, 0 psline -3000 + wx, 200 + wy, 6, -2000 + wx, 100 + wy, 6, 1, 0 psline -5000 + wx, 200 + wy, 6, -3000 + wx, 200 + wy, 6, 1, 0 psline -6500 + wx, 950 + wy, 4, -6000 + wx, 950 + wy, 6, 1, 0 psline -6000 + wx, 950 + wy, 6, -5000 + wx, 950 + wy, 6, 1, 0 psline -5000 + wx, 200 + wy, 6, -5000 + wx, 950 + wy, 6, 1, 0 stars3d -5000 + wx, 200 + wy, 2, -4500 + wx, 201 + wy, 6, 9, (flash1%), 15 stars3d -5700 + wx, 950 + wy, 2, -5000 + wx, 951 + wy, 6, 15, (flash1%), 15 END IF 'raft psdline -200 - (bob / 5), 30 - bob, 3, 200 - (bob / 5), 30 + bob, 5, 4, 4, 4, 1 psdline -200 + (bob / 5), -bob, 3, -200 - (bob / 5), 30 - bob, 5, 4, 4, 4, 0 psdline 200 - (bob / 5), 30 + bob, 3, 200 + (bob / 5), bob, 5, 4, 4, 4, 0 psdline -200 + (bob / 5), -bob, 3, 200 + (bob / 5), bob, 5, 6, 6, 6, 1 psdline -200 + (bob / 5), -bob, 3.5, 200 + (bob / 5), bob, 4.5, 6, 6, 6, 0 psline -200 + (bob / 5), -bob, 4, 200 + (bob / 5), bob, 4, 6, 0 IF ticker% < 1000 THEN psline -3000 + wx, 200 + wy, 2, -2000 + wx, 100 + wy, 2, 9, 0 psline -2000 + wx, 100 + wy, 2, -1100 + wx, 100 + wy, 2, 9, 0 psline -1000 + wx, wy, 2, -1100 + wx, 100 + wy, 2, 9, 0 psline -1000 + wx, wy, 2, 500 + wx, wy, 2, 9, 0 psline 500 + wx, wy, 2, 1000 + wx, wy, 4, 9, 0 ELSE psline -3000 + wx, 200 + wy, 2, -2000 + wx, 100 + wy, 2, 9, 0 psline -2000 + wx, 100 + wy, 2, -1100 + wx, 100 + wy, 2, 9, 0 psline -6500 + wx, 950 + wy, 4, -6000 + wx, 950 + wy, 2, 9, 0 psline -6000 + wx, 950 + wy, 2, -5000 + wx, 950 + wy, 2, 9, 0 psline -5000 + wx, 200 + wy, 2, -5000 + wx, 950 + wy, 2, 9, 0 psline -5000 + wx, 200 + wy, 2, -3000 + wx, 200 + wy, 2, 9, 0 END IF '---------------------------------------------------------------------------- CASE IS = 5 'horizon window2d LINE (0, 50)-(100, 50), 8 window3d 'pads psdline -200, 0, 5, 200, 0, 15, 15, 7, 8, 1 psdline 400, 0, 5, 800, 0, 15, 15, 7, 8, 1 '-----Ship IF ticker% < 2100 THEN 'landing gear psline -60, -25 + wy, 13, -70, wy + trigger1, 13.5, 8, 0 psline 60, -25 + wy, 13, 70, wy + trigger1, 13.5, 8, 0 psline 0, -25 + wy, 10, 0, wy + trigger1, 9 + trigger2, 7, 0 'exhaust stars3d -90, -85 + wy, 12, -80, -30 + wy, 13, flash1%, 9, flash1% stars3d 80, -85 + wy, 12, 90, -30 + wy, 13, flash1%, 9, flash1% starsoffset 0, .005 'left wing psline -75, -100 + wy, 14, -175, -50 + wy, 14, 8, 0 psline -75, -100 + wy, 10, -175, -50 + wy, 13, 7, 0 psdline -75, -75 + wy, 12, -90, -92.5 + wy, 14, 7, 8, 8, 1 psdpset -175, -50 + wy, 11, 15, 7 'right wing psline 75, -100 + wy, 14, 175, -50 + wy, 14, 8, 0 psline 75, -100 + wy, 10, 175, -50 + wy, 13, 7, 0 psdline 75, -75 + wy, 12, 90, -92.5 + wy, 14, 7, 8, 8, 1 psdpset 175, -50 + wy, 11, 15, 7 'hull pscube -75, -100 + wy, 10, 75, -25 + wy, 14, 7, 7, 8 'nose psline -75, -25 + wy, 10, -25, -40 + wy, 6, 8, 0 psline 75, -25 + wy, 10, 25, -40 + wy, 6, 8, 0 psline -75, -100 + wy, 10, -25, -40 + wy, 6, 7, 0 psline 75, -100 + wy, 10, 25, -40 + wy, 6, 7, 0 psline -25, -40 + wy, 6, 25, -40 + wy, 6, 7, 0 END IF 'building pscube -800, -300, 2, -400, 0, 15, 15, 7, 8 '---------------------------------------------------------------------------- CASE IS = 6 'Back Wall "X" IF stagedetail% = 1 THEN psline -200, -300, 10, 200, 0, 10, 8, 0 psline 200, -300, 10, -200, 0, 10, 8, 0 'Ceiling pscube -200, -315, 5, 200, -300, 10, 7, 7, 8 'floor pscube -200, 0, 5, 200, 15, 10, 7, 7, 8 ELSE 'Low detail 'Ceiling psdline -200, -300, 5, 200, -300, 10, 7, 7, 8, 1 'Floor psdline -200, 0, 5, 200, 0, 10, 7, 7, 8, 1 END IF FOR wee = -150 TO 150 STEP 50 psdpset wee, 0, 5, 10, 7 NEXT wee 'Walls and Spikes IF panx < 0 OR zoom > .07 THEN pscube -196, -300, 5.5, -185, -.5, 9.5, 6, 4, 4 FOR wee = -155 TO -10 STEP 30 psline -185, (wee) + 15, 8.5, -175, (wee) + 10, 8.5, 8, 0 psline -185, (wee + 30), 8, -175, (wee) + 25, 8, 7, 0 NEXT wee END IF IF panx >= 0 OR zoom > .07 THEN pscube 196, -300, 5.5, 185, -.5, 9.5, 6, 4, 4 FOR wee = -155 TO -10 STEP 30 psline 185, (wee) + 15, 8.5, 175, (wee) + 10, 8.5, 8, 0 psline 185, (wee + 30), 8, 175, (wee) + 25, 8, 7, 0 NEXT wee END IF '---------------------------------------------------------------------------- CASE IS = 7 'Back Wall IF stagedetail% = 1 THEN FOR wee = -400 TO 400 STEP 200 psline wee, -300, 10, wee, 0, 10, 8, 0 NEXT wee END IF 'Ceiling psdline -400, -300, 5, 400, -300, 10, 15, 7, 8, 0 FOR wee = -400 TO 400 STEP 200 psdpset wee, -300, 5, 10, 7 NEXT wee 'floor psdline -400, 0, 5, 400, 0, 10, 15, 7, 8, 0 FOR wee = -400 TO 400 STEP 200 psdpset wee, 0, 5, 10, 7 NEXT wee 'Crush Walls pscube -10 - wx, -300, 5.5, -wx, -.5, 9.5, 6, 4, 4 pscube wx, -300, 5.5, 10 + wx, -.5, 9.5, 6, 4, 4 IF stagedetail% = 1 THEN psline -wx, -300, 5.5, -wx, -.5, 9.5, 4, 0 psline -wx, -300, 9.5, -wx, -.5, 5.5, 4, 0 psline wx, -300, 5.5, wx, -.5, 9.5, 4, 0 psline wx, -300, 9.5, wx, -.5, 5.5, 4, 0 END IF '---------------------------------------------------------------------------- CASE IS = 8 'Sky window2d LINE (0, 30)-(100, 30), 4 LINE (0, 40)-(100, 40), 4 LINE (0, 46)-(100, 46), 12 LINE (0, 50)-(100, 50), 14 window3d 'Ring pscube -400, 0, 1, 400, 25, 21, 15, 7, 8 IF stagedetail% = 1 THEN psdline -320, 0, 3, 320, 0, 19, 8, 7, 8, 1 psdline -240, 0, 5, 240, 0, 17, 8, 7, 8, 1 psdline -160, 0, 7, 160, 0, 15, 8, 7, 8, 1 psdline -80, 0, 9, 80, 0, 13, 8, 7, 8, 1 END IF '---------------------------------------------------------------------------- CASE IS = 9 'Shocker psdline -500, 100, 4, 500, 100, 12, flash1%, flash1%, flash1%, 1 'Rear Support pscube -20, -25, 10, 20, 100, 11, 7, 7, 8 IF stagedetail% = 1 THEN pscircle 0, 0, 10, 10, 8 psline -300, -trigger1, 6, 300, trigger1, 10, 7, 0 psline -300, -trigger1, 10, 300, trigger1, 6, 7, 0 END IF 'Tilting Ring psdline -300, -trigger1, 6, 300, trigger1, 10, 15, 7, 8, 1 '---------------------------------------------------------------------------- CASE IS = 10 'Walls pscube -225, -300, 6, -200, 15, 8, 15, 7, 8 pscube 200, -300, 6, 225, 15, 8, 15, 7, 8 'Top Bar psdline -200, -300, 6.8, 200, -300, 7.2, 15, 0, 8, 0 'Rear Pendulum psline wx, -300, 7, wx, -20 - (trigger1 * 10), 7 + trigger1, 7, 0 psline wx, -15 - (trigger1 * 10), 7 + trigger1, wx, -20 - (trigger1 * 10), 6.5 + trigger1, (trigger3), 0 psline wx, -15 - (trigger1 * 10), 7 + trigger1, wx, -20 - (trigger1 * 12), 7.5 + trigger1, (trigger3), 0 'ring pscube -200, 0, 6, 200, 15, 8, 9, 9, 1 psline -200, 0, 6, 200, 0, 8, 1, 0 psline -200, 0, 8, 200, 0, 6, 1, 0 '---------------------------------------------------------------------------- CASE IS = 11, 12 'rear building psline -1500, -700, 23, 1500, 0, 23, 8, 1 IF stagedetail% = 1 THEN FOR wee = -1000 TO 1000 STEP 500 psline wee, -700, 23, wee, 0, 23, 8, 0 NEXT wee END IF 'Left building IF stagedetail% = 1 AND panx <= 0 THEN FOR wee = -15 TO -800 STEP -150 psdline -1000, wee, 9, -400, wee, 17, 9, 1, 1, 1 NEXT wee END IF pscube -1000, -800, 9, -400, 0, 17, 15, 7, 8 'Right building IF panx > -200 THEN pscube 400, -1000, 9, 1500, 0, 17, 9, 1, 1 'center building pscube -200, -500, 9, 200, 0, 17, 7, 7, 8 'windows IF stagedetail% = 1 THEN FOR wee = -15 TO -450 STEP -100 psline -190, wee - 60, 9, 190, wee, 9, 9, 1 psline -200, wee, 10, -200, wee, 16, 1, 0 psline 200, wee, 10, 200, wee, 16, 1, 0 NEXT wee END IF psline -200, -500, 9, 200, -500, 17, 7, 0 psline 200, -500, 9, -200, -500, 17, 7, 0 '---------------------------------------------------------------------------- CASE IS = 13, 14 IF trigger1 = 0 OR trigger1 = 15 THEN 'Rear fence FOR wee = -175 TO 175 STEP 25 psline (wee), (0), (15), (wee), (-35), (15), 7, 0 NEXT wee 'Side fences FOR wee = 2.5 TO 15 STEP 1 psline (-200), (0), (wee), (-200), (-35), (wee), 7, 0 psline (200), (0), (wee), (200), (-35), (wee), 7, 0 NEXT wee 'High Detail Stuff IF stagedetail% = 1 THEN psline (-200), (-20), (15), (200), (-20), (15), 8, 0 psline (-200), (-20), (2.5), (-200), (-20), (3.5), 8, 0 psline (200), (-20), (2.5), (200), (-20), (3.5), 8, 0 psline (-200), (-20), (4.5), (-200), (-20), (15), 8, 0 psline (200), (-20), (4.5), (200), (-20), (15), 8, 0 END IF 'Graves FOR wee = -165 TO 35 STEP 200 pscube wee, -15, 5, wee + 10, 0, 5.1, 7, 7, 8 'Far Cross psline wee + 72, -27, 9, wee + 76, 0, 9, 4, 0 psline wee + 80, -20, 9, wee + 66, -19, 9, 4, 0 'Near Cross psline wee - 22, -27, 7, wee - 26, 0, 7, 4, 0 psline wee - 30, -20, 7, wee - 16, -19, 7, 4, 0 pscube wee + 100, -15, 8, wee + 110, 0, 8.1, 7, 8, 8 psline wee + 50, -15, 10, wee + 60, 0, 10, 7, 1 psline wee + 150, -15, 12, wee + 160, 0, 12, 8, 1 NEXT wee '---------- Dead Tree 'trunk psline 120, 0, 4.8, 125, -23, 5, 4, 0 psline 130, 0, 4.2, 120, -60, 5, (trigger2), 0 psline 145, 0, 4.5, 125, -50, 4.9, 4, 0 psline 150, 0, 5, 125, -75, 5, 4, 0 psline 50, (-150 + trigger1), 5, 125, -75, 5, 4, 0 psline 60, (-135 + trigger1), 5, 120, -60, 5, (trigger2), 0 psline 90, (-100 + trigger1), 4.8, 120, -70, 4.5, 4, 0 'Incomming branch psline 140, (-80 + trigger1), 4, 120, -70, 4.5, 4, 0 psline 150, (-85 + trigger1), 3, 120, -63, 4.9, 4, 0 psline 150, (-85 + trigger1), 3, 128, -65, 5, (trigger2), 0 END IF '--------------------+ IF stage% = 14 THEN IF stagedetail% = 1 THEN '--- Crucifix 'Body psline -10, 325, 7, 8, 390, 7, 8, 0 psline 10, 325, 7, -8, 390, 7, 8, 0 'Legs psline -5, 470, 7, 8, 390, 7, 8, 0 psline 5, 470, 7, -8, 390, 7, 8, 0 'Feet psline 0, 470, 7, 0, 495, 7, 8, 0 'arms psline -9, 355, 7, -55, 370, 7, 8, 0 psline -100, 345, 7, -30, 370, 7, 8, 0 psline 9, 355, 7, 55, 370, 7, 8, 0 psline 100, 345, 7, 30, 370, 7, 8, 0 END IF 'Room/Ring psdline -175, 300, 3, -100, 250, 7, 4, 0, 4, 0 psdline 175, 300, 3, 100, 250, 7, 4, 0, 4, 0 pscube -175, 300, 1.5, 175, 500, 7, 12, 4, 4 pscube -100, 495, 3, 100, 500, 5, 15, 7, 8 'Steam particle (-175 + (RND * 350)), (500), (1.5 + (RND * 1.5)), 15, 1 particle (-175 + (RND * 350)), (500), (5 + (RND * 2)), 15, 1 stars3d -175, 450, 1.5, 175, 500, 7, 7, 8, 7 starsoffset 0, -.005 END IF '---------------------------------------------------------------------------- CASE IS = 15 IF ticker% < 175 THEN pscube -250, -300, 1.5, 300, 0, 7, 7, 8, 8 psline -100.5, -100, 7, -99.5, -80, 7, 8, 1 psline -101.5, -100, 7, -98.5, -100, 7, 8, 1 particle -100, -102, 7, 16, 1 ELSE 'Back Room IF stagedetail% = 1 THEN FOR wee = -100 TO 100 STEP 50 psline (wee), -40, 30, (wee), 0, 30, 4, 0 NEXT wee psline 0, -140, 30, 0, -50, 30, 4, 0 psline -25, -70, 30, 25, -70, 30, 4, 0 'Hall and Mats psline -100, -100, 15, -50, 0, 15, 0, 2 psline 50, -100, 15, 100, 0, 15, 0, 2 psline -50, -100, 15, 50, 0, 15, 4, 1 pscube -50, -100, 10, 50, 0, 15, 4, 4, 8 IF ticker% < 300 THEN psline -400, -100, 10, -175, 0, 10, 0, 2 psline -175, -100, 10, -50, 0, 10, 0, 2 psline 50, -100, 10, 175, 0, 10, 0, 2 psline -50, -100, 10, 50, 0, 10, 4, 1 END IF 'Hallway IF ticker% < 350 THEN FOR wee = -700 TO -300 STEP 75: psdpset (wee), 0, 3, 6, 8: NEXT wee pscube -800, -100, 3, -200, 0, 6, 4, 4, 4 'Gate psdline -202, trigger3, 3.4, -202, trigger3 - 100, 3.8, 8, 8, 8, 0 psdline -202, trigger3, 4.2, -202, trigger3 - 100, 4.6, 8, 8, 8, 0 psdline -203, trigger3, 5, -203, trigger3 - 100, 5.4, 8, 8, 8, 0 psdpset -201.5, trigger3 - 25, 3, 6, 7 psdpset -201.5, trigger3 - 75, 3, 6, 7 'Rear Wall psline -100, 0, 10, 100, 0, 10, 4, 0 psline -200, -200, 10, 200, -200, 10, 4, 0 psline -100, 0, 10, -200, -200, 10, 4, 0 psline 100, 0, 10, 200, -200, 10, 4, 0 'Rear Corners psline -100, 0, 10, -200, 0, 6, 4, 0 psline 100, 0, 10, 200, 0, 6, 4, 0 psline -200, -200, 10, -200, 0, 6, 4, 0 psline 200, -200, 10, 200, 0, 6, 4, 0 'Sides psline -200, -200, 2, -200, -200, 10, 4, 0 psline 200, -200, 2, 200, -200, 10, 4, 0 psline 200, 0, 3, 200, 0, 6, 4, 0 IF stagedetail% = 1 THEN '--- Circle Symbol 'Outer Circle psdline -25, 0, 3.5, 25, 0, 6.5, 4, 0, 4, 0 psline -25, 0, 3.5, -50, 0, 4, 4, 0 psline -60, 0, 4.5, -50, 0, 4, 4, 0 psline -60, 0, 4.5, -60, 0, 5.5, 4, 0 psline -25, 0, 6.5, -50, 0, 6, 4, 0 psline -60, 0, 5.5, -50, 0, 6, 4, 0 psline 25, 0, 3.5, 50, 0, 4, 4, 0 psline 60, 0, 4.5, 50, 0, 4, 4, 0 psline 60, 0, 4.5, 60, 0, 5.5, 4, 0 psline 25, 0, 6.5, 50, 0, 6, 4, 0 psline 60, 0, 5.5, 50, 0, 6, 4, 0 'Inner Design 'NS Points psline 0, 0, 6.5, -20, 0, 5, 4, 0 psline 0, 0, 3.5, -20, 0, 5, 4, 0 psline 0, 0, 6.5, 20, 0, 5, 4, 0 psline 0, 0, 3.5, 20, 0, 5, 4, 0 'EW Points psline -60, 0, 5, 0, 0, 5.5, 4, 0 psline -60, 0, 5, 0, 0, 4.5, 4, 0 psline 60, 0, 5, 0, 0, 5.5, 4, 0 psline 60, 0, 5, 0, 0, 4.5, 4, 0 END IF 'Ring of Fire IF RND < .3 THEN particle -63, -2, 5, 27, 1 particle 63, -2, 5, 27, 1 particle -45, -2, 6.2, 27, 1 particle 45, -2, 6.2, 27, 1 particle -45, -2, 3.7, 27, 1 particle 45, -2, 3.7, 27, 1 particle 0, -2, 7, 27, 1 particle 0, -2, 3, 27, 1 particle -20, -2, 6.8, 27, 1 particle 20, -2, 6.8, 27, 1 particle -20, -2, 3.2, 27, 1 particle 20, -2, 3.2, 27, 1 END IF END IF '----------------------------------------------------------------------- Dojo CASE IS = 1000, 1001, 1002 'Walls pscube -200, -300, 3, 200, 0, 10, 12, 4, 4 'Weapon Racks FOR wee = 0 TO 50 STEP 10 psline (-75 - wee), -55, 10, (-75 - wee), -10, 10, 8, 0 psline (75 + wee), -55, 10, (75 + wee), -10, 10, 8, 0 NEXT wee psline -125, -45, 9.8, -75, -45, 9.8, 7, 0 psline -125, -15, 9.8, -75, -15, 9.8, 7, 0 psline 125, -45, 9.8, 75, -45, 9.8, 7, 0 psline 125, -15, 9.8, 75, -15, 9.8, 7, 0 'Torch Posts pscube -150, -35, 7, -154, 0, 7.2, 15, 7, 8 pscube 150, -35, 7, 154, 0, 7.2, 15, 7, 8 'fire Pit starsoffset 0, -.01 psdline -25, 0, 8, 25, 0, 9, 7, 8, 8, 1 stars3d -25, -50, 8, 25, 0, 9, 8, 7, 8 'Fire particle ((RND - .5) * 25), -5, 8 + RND, 17, 1 particle -152, -40, 7.1, 16, 1 particle 152, -40, 7.1, 16, 1 '---------------------------------------------------------------------------- END SELECT END SUB SUB stageforground SELECT CASE stage% '---------------------------------------------------------------------------- CASE IS = 2 'far wing psline -500, -75, 2.5, 100, -75, .5, 7, 0 psline -250, -75, 2.5, 100, -75, .5, 15, 0 '---------------------------------------------------------------------------- CASE IS = 3 'Near Struts IF stagedetail% = 1 THEN pscube -145, -45, 3.5, -125, 110, 4, 15, 7, 8 pscube 145, -45, 3.5, 125, 110, 4, 15, 7, 8 END IF '---------------------------------------------------------------------------- CASE IS = 5 'Missle Launcher IF stagedetail% = 1 THEN pscircle 1015 + wx, -7, 3.1, 5, 8 pscircle 1050 + wx, -7, 3, 5, 8 pscircle 1135 + wx, -7, 3, 5, 8 pscube 1125 + wx, -15, 2.3, 1145 + wx, -5, 2.7, 15, 7, 8 pscube 1026 + wx, -15, 2, 1060 + wx, -5, 3, 15, 7, 8 pscube 1035 + wx, -30, 2, 1150 + wx, -16, 3, 15, 7, 8 psline 1015 + wx, -42, 2.5, 1135 + wx, -42, 2.5, 8, 0 psline 1015 + wx, -42, 2.5, 980 + wx, -47.5, 2.5, 8, 0 pscube 1000 + wx, -40, 2, 1025 + wx, -5, 3, 15, 7, 8 pscube 1135 + wx, -55, 2.1, 1145 + wx, -30, 2.9, 15, 7, 8 pscircle 1015 + wx, -7, 1.9, 5, 15 pscircle 1050 + wx, -7, 2, 5, 15 pscircle 1135 + wx, -7, 2, 5, 15 psline 1015 + wx, -47.5, 2.6, 1135 + wx, -47.5, 2.6, 7, 0 psline 1015 + wx, -47.5, 2.6, 980 + wx, -47.5, 2.5, 7, 0 psline 1015 + wx, -54, 2.5, 1135 + wx, -54, 2.5, 15, 0 psline 1015 + wx, -54, 2.5, 980 + wx, -47.5, 2.5, 15, 0 psline 1015 + wx, -47.5, 2.4, 1135 + wx, -47.5, 2.4, 15, 0 psline 1015 + wx, -47.5, 2.4, 980 + wx, -47.5, 2.5, 15, 0 END IF '---------------------------------------------------------------------------- CASE IS = 6 'Spikes IF panx < 0 OR zoom > .07 THEN FOR wee = -155 TO -10 STEP 30 psline -185, (wee) + 15, 7.5, -175, (wee) + 10, 7.5, 7, 0 psline -185, (wee + 30), 7, -175, (wee) + 25, 7, 7, 0 psline -185, (wee) + 15, 6.5, -175, (wee) + 10, 6.5, 15, 0 NEXT wee END IF IF panx >= 0 OR zoom > .07 THEN FOR wee = -155 TO -10 STEP 30 psline 185, (wee) + 15, 7.5, 175, (wee) + 10, 7.5, 7, 0 psline 185, (wee + 30), 7, 175, (wee) + 25, 7, 7, 0 psline 185, (wee) + 15, 6.5, 175, (wee) + 10, 6.5, 15, 0 NEXT wee END IF '---------------------------------------------------------------------------- CASE IS = 9 'Near Support IF stagedetail% = 1 THEN pscircle 0, 0, 6, 10, 8 pscube -20, -25, 5, 20, 100, 6, 15, 7, 8 '---------------------------------------------------------------------------- CASE IS = 10 'Near Pendulum psline -wx, -300, 7, -wx, -20 - (trigger1 * 10), 7 - trigger1, 7, 0 psline -wx, -15 - (trigger1 * 10), 7 - trigger1, -wx, -20 - (trigger1 * 12), 6.5 - trigger1, (trigger3), 0 psline -wx, -15 - (trigger1 * 10), 7 - trigger1, -wx, -20 - (trigger1 * 10), 7.5 - trigger1, (trigger3), 0 '---------------------------------------------------------------------------- CASE IS = 11 IF zoom > .12 AND stagedetail% = 1 THEN 'Left building pscube -1500, -800, .1, -400, 0, 3, 15, 7, 8 'center "building" pscube -200, -500, .1, 200, 0, 3, 15, 7, 8 'Right building pscube 400, -1000, .1, 800, 0, 3, 15, 7, 8 END IF '---------------------------------------------------------------------------- CASE IS = 13, 14 IF trigger1 = 0 OR trigger1 = 15 THEN IF ticker% < 25 AND stage% = 13 THEN psline -100, 0, 4, 100, 55, 4, 0, 2 IF stagedetail% = 1 THEN psline (-200), (-20), (2.5), (200), (-20), (2.5), 8, 0 'rain rain3d -200, -150, .1, 200, 5, 15, 7, 9, 15, 5 IF ticker% > 400 AND stage% = 13 THEN rain2d 1, 9, 1, .02 'Near fence FOR wee = -175 TO 175 STEP 25 psline (wee), (0), (2.5), (wee), (-35), (2.5), 15, 0 NEXT wee END IF '---------------------------------------------------------------------------- CASE IS = 15 IF ticker% >= 175 THEN psline -100, 0, 2, 100, 0, 2, 4, 0 psline -200, -200, 2, 200, -200, 2, 4, 0 psline -100, 0, 2, -200, -200, 2, 4, 0 psline 100, 0, 2, 200, -200, 2, 4, 0 'Near Corners psline -100, 0, 2, -200, 0, 3, 4, 0 psline 100, 0, 2, 200, 0, 3, 4, 0 psline -200, -200, 2, -200, 0, 3, 4, 0 psline 200, -200, 2, 200, 0, 3, 4, 0 END IF '---------------------------------------------------------------------------- END SELECT END SUB SUB stageinit IF stage% <> 1000 THEN IF stage% < 1 OR stage% > stages% THEN stage% = 1 IF stage% < 50 THEN dif% = stage%: AIactive%(2) = 1 ELSE dif% = 7: AIactive%(2) = 0 IF AIactive%(1) = 1 AND AIactive%(2) = 1 THEN dif% = 5: stage% = INT(RND * 3) + 1: setfightercpu IF stage% = 15 THEN dif% = 7 ticker% = 0 soundticker% = 20 control% = 0 victory% = 0 camode% = 0 bobm = 0 rebirth% = 0 particleclear FOR wee = 1 TO 10 smearl%(wee) = 0 NEXT wee FOR wee = 1 TO 6 projectile%(wee) = 0 NEXT wee FOR wee = 1 TO 2 setbody (wee) setko (wee) win%(wee) = 0 rage(wee) = 0 NEXT wee SELECT CASE stage% '---------------------------------------------------------------- Init Stages CASE IS = 1 startfight% = 100 ring% = 200 midstage = 6 zoom = 1 panx = 0 pany = 75 panh = 0 panv = -1.4 zoomd = -.084 zoomt = .02: 'Smaller = Zoom More floor1 = 0 floor2 = 120 bob = 15 gravity = 1 wx = 0 wy = 25 wz = 0 trigger1 = 100 trigger2 = 0 trigger3 = 0 fightercompress (1) fightercompress (2) setfightercpu '---------------------------------------------------------------------------- CASE IS = 2 startfight% = 200 ring% = 200 midstage = 3.5 zoom = .3 panx = -1000 pany = 10 panh = 9.9 panv = 0 zoomd = 0 zoomt = .1 floor1 = 0 floor2 = 100 bob = 5 gravity = .5 wx = 0 wy = 25 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 3 startfight% = 100 ring% = 100 midstage = 5.5 zoom = .3 panx = 0 pany = -500 panh = 0 panv = 15 zoomd = 0 zoomt = .04 floor1 = 100 floor2 = 110 bob = 5 gravity = 1 wx = 0 wy = 25 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 4 startfight% = 125 ring% = 200 midstage = 4 zoom = .6 panx = -2000 pany = 0 panh = 25 panv = 0 zoomd = 0 zoomt = .1 floor1 = 0 floor2 = 500 bob = 3 gravity = 1 wx = 0 wy = 25 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 5 startfight% = 100 ring% = 400 midstage = 3.5 zoom = .1 panx = 900 pany = -50 panh = 0 panv = 0 zoomd = .005 zoomt = .045 floor1 = 0 floor2 = 0 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 6 startfight% = 100 ring% = 180 midstage = 7.5 zoom = .01 panx = -175 pany = -100 panh = 0 panv = 2 zoomd = 0 zoomt = .015 floor1 = 0 floor2 = 0 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 7 startfight% = 125 ring% = 100 midstage = 7.5 zoom = .01 panx = 380 pany = -10 panh = 0 panv = 0 zoomd = .001 zoomt = .02 floor1 = 0 floor2 = 0 bob = 0 gravity = 1 wx = 390 wy = -.1 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 8 startfight% = 10 ring% = 400 midstage = 10 zoom = .1 panx = 0 pany = -300 panh = 0 panv = 0 zoomd = 0 zoomt = .01 floor1 = 0 floor2 = 25 bob = 0 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 9 startfight% = 50 ring% = 300 midstage = 8 zoom = .08 panx = -400 pany = 50 panh = 20 panv = 0 zoomd = 0 zoomt = .015 floor1 = 100 floor2 = 100 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 10 startfight% = 100 ring% = 200 midstage = 7 zoom = .07 panx = 100 pany = -250 panh = 0 panv = 0 zoomd = 0 zoomt = .015 floor1 = 0 floor2 = 0 bob = 15 gravity = 1 wx = 5 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 15 '---------------------------------------------------------------------------- CASE IS = 11 startfight% = 75 ring% = 200 midstage = 7 zoom = .8 panx = 0 pany = -1000 panh = 0 panv = 10 zoomd = -.06 zoomt = .02 floor1 = 0 floor2 = 0 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 12 startfight% = 25 ring% = 200 midstage = 13 'zoom = .8 'panx = 0 'pany = -1000 'panh = 0 'panv = 10 'zoomd = -.06 zoomt = .015 floor1 = -500 floor2 = 0 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 13 startfight% = 25 ring% = 100 midstage = 4 zoom = .1 panx = 0 pany = 0 panh = 0 panv = -2 zoomd = 0 zoomt = .045 floor1 = 50 floor2 = 50 bob = 10 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 12 trigger3 = .001 '---------------------------------------------------------------------------- CASE IS = 14 startfight% = 100 ring% = 100 midstage = 4 'zoom = .1 'panx = 0 'pany = 0 panh = 0 panv = 5 zoomd = .005 zoomt = .045 floor1 = 495 floor2 = 500 bob = 10 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 15 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- CASE IS = 15 startfight% = 500 ring% = 650 midstage = 4 zoom = .01 panx = -200 pany = -50 panh = 0 panv = 0 zoomd = .01 zoomt = .003 floor1 = -400 floor2 = -400 bob = 10 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = -100 '---------------------------------------------------------------------------- 'Dojo CASE IS = 1000 startfight% = 1 ring% = 200 midstage = 6 zoom = .1 panx = 0 pany = -100 panh = 0 panv = .5 zoomd = 0 zoomt = .03 floor1 = 0 floor2 = 0 bob = 15 gravity = 1 wx = 0 wy = 0 wz = 0 trigger1 = 0 trigger2 = 0 trigger3 = 0 '---------------------------------------------------------------------------- END SELECT fighterinit END SUB SUB stageshifting IF ticker% < 32767 THEN ticker% = ticker% + 1 IF ticker% = 1 OR ticker% = 10 THEN setstagename (stage%): fightername (2) SELECT CASE stage% '---------------------------------------------------------------------------- CASE IS = 1 IF trigger1 > 0 THEN trigger1 = trigger1 - 1 IF ticker% = 150 THEN camode% = 1 IF headless%(1) = 0 AND headless%(2) = 0 THEN IF health%(2) = 0 THEN camode% = 2 IF health%(1) = 0 THEN camode% = 3 END IF FOR wee = 1 TO 2 IF butty(wee) > 75 THEN particle (buttx(wee) + ((RND - .5) * 10)), (foot1y(wee + 2)), (fighterz(wee)), 17, 1: particle (buttx(wee)), (butty(wee) - (RND * 10)), (fighterz(wee)), 18, 1 NEXT wee 'lightning IF RND < .01 THEN trigger1 = 5 IF trigger1 > 0 THEN IF RND > .5 THEN pslightning 0, -25, 7, ((RND - .5) * 200), -500, 0, 75, flash1% ELSE pslightning 0, -25, 7, ((RND - .5) * 200), -500, 0, 75, flash2% END IF 'Pop Fighters IF ticker% = 100 THEN fighterpop 1: fighterpop 2 IF ticker% < 100 THEN psline -9 + (RND - .5), -20 + (RND - .5), 7, 9, -20, 7, flash2%, 0 psline -6 + (RND - .5), -35 + (RND - .5), 7, 0, -12, 7, flash2%, 0 psline 6 + (RND - .5), -35 + (RND - .5), 7, 0, -12, 7, flash2%, 0 psline -6 + (RND - .5), -35 + (RND - .5), 7, 9, -20, 7, flash2%, 0 psline 6 + (RND - .5), -35 + (RND - .5), 7, -9, -20, 7, flash2%, 0 pscircle 0 + (RND - .5), -25 + (RND - .5), 7, 10, flash2% END IF IF ticker% > 70 AND ticker% < 100 THEN FOR wee = 1 TO 2 particle headx(wee + 2), heady(wee + 2), fighterz(wee), 15, 3 pslightning 0, -25, 7, headx(wee + 2), heady(wee + 2), fighterz(wee), 25, flash2% NEXT wee END IF '---------------------------------------------------------------------------- CASE IS = 2 IF ticker% = 200 THEN camode% = 1 '---------------------------------------------------------------------------- CASE IS = 3 IF ticker% = 45 THEN camode% = 1 FOR wee = 1 TO 2 IF heady(wee + 2) < -45 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5 NEXT wee '---------------------------------------------------------------------------- CASE IS = 4 'Camera stuff IF ticker% = 50 THEN camode% = 1 ELSE IF butty(2) > 50 THEN camode% = 2 IF butty(1) > 50 THEN camode% = 3 END IF 'Raft moves with current IF ticker% < 2637 THEN wx = wx + 2 ELSE wx = wx + .2: wy = wy - .4 'Water splashes FOR wee = 1 TO 2 IF ticker% < 2300 AND butty(wee) > 25 AND butty(wee) < 35 THEN splash (wee) IF foot1y(wee + 2) > 950 + wy AND foot1y(wee + 2) < 975 + wy THEN splash wee NEXT wee 'Raft Splashes when hits water IF ticker% = 576 OR ticker% = 2626 THEN gravity = 1 FOR wee = -200 TO 200 STEP 25 particle wee, 0, 5, 11, 1 particle wee, 10, 3, 11, 2 NEXT wee END IF '----------------+ IF ticker% < 1500 THEN '----1st Half 'First drop IF ticker% > 550 AND ticker% < 575 THEN wy = wy - 4 IF odds% = 1 THEN particle 100 + (RND * 100), 20, 3, 13, 1: particle 100 + (RND * 100), 20, 5, 13, 2 END IF 'Slope IF ticker% > 1000 THEN wy = wy - .2 IF RND < .05 THEN particle (RND * 200), 20, 3, 11, 1: particle (RND * 200), 20, 5, 11, 2 END IF '----------------+ ELSE '----2nd Half 'Tilt raft at waterfall IF ticker% > 2450 AND ticker% < 2625 THEN bobm = 0: bob = bob - .14 'Low G and effects of waterfall IF ticker% > 2550 AND ticker% < 2625 THEN gravity = .5 wy = wy - 10 IF RND < .2 THEN particle 200, 0, 3, 12, 1: particle 200, 0, 5, 12, 1 END IF 'Drown PLayers at end IF foot1y(3) > 1000 + wy AND foot1y(3) > 1000 + wy THEN health%(1) = health%(1) - 1: health%(2) = health%(2) - 1: gravity = .5 '----------------+ END IF '---------------------------------------------------------------------------- CASE IS = 5 IF ticker% < 75 THEN wx = wx - 10: panh = -8.05 ELSE IF ticker% > 75 AND ticker% < 100 THEN wx = wx - 3 IF ticker% > 100 AND ticker% < 125 THEN panh = panh / 1.06 IF ticker% = 175 THEN camode% = 1 IF ticker% > 1600 THEN wy = wy - .1 IF ticker% > 1625 AND ticker% < 1675 THEN trigger2 = trigger2 + .04 IF ticker% > 1650 AND ticker% < 1700 THEN trigger1 = trigger1 - .5 IF stagedetail% = 1 THEN IF ticker% > 1800 AND ticker% < 2080 THEN wy = wy - 2: IF RND < .4 THEN particle -85, -85 + wy, 12.5, 8, 1: particle 85, -85 + wy, 12.5, 8, 1 IF ticker% = 2100 THEN particle 0, -85 + wy, 13, 5, 50 END IF 'Wall Stopping FOR wee = 1 TO 2 IF (buttx(wee)) < -400 THEN buttx(wee) = -400: neckx(wee) = 0: butth(wee) = 0 NEXT wee '---------------------------------------------------------------------------- CASE IS = 6 IF ticker% = 50 THEN camode% = 1 IF headless%(1) = 0 AND headless%(2) = 0 THEN IF health%(2) = 0 THEN camode% = 2 IF health%(1) = 0 THEN camode% = 3 END IF FOR wee = 1 TO 2 IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0 IF (buttx(wee)) < -ring% + 10 AND butty(wee) > -165 THEN health%(wee) = health%(wee) - 1 fighterfreeze (wee) buttv(wee) = -gravity butth(wee) = butth(wee) + .01 particle (buttx(wee)), (butty(wee) + (RND * necky(wee))), (fighterz(wee)), 4, 1 END IF IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0 IF (buttx(wee)) > ring% - 10 AND butty(wee) > -165 THEN health%(wee) = health%(wee) - 1 fighterfreeze (wee) buttv(wee) = -gravity butth(wee) = butth(wee) - .01 particle (buttx(wee)), (butty(wee) + (RND * necky(wee))), (fighterz(wee)), 3, 1 END IF IF heady(wee + 2) < -300 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5 NEXT wee '---------------------------------------------------------------------------- CASE IS = 7 IF ticker% = 100 THEN camode% = 1 IF wx <= 0 THEN trigger1 = .5 IF wx > ring% THEN trigger1 = -.1 wx = wx + trigger1 FOR wee = 1 TO 2 IF ABS(buttx(wee)) > ABS(wx) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -wx THEN buttx(wee) = -wx: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > wx THEN buttx(wee) = wx: butth(wee) = 0: neckx(wee) = 0 'Crush IF wx < 3 THEN health%(wee) = health%(wee) - 2 position%(wee) = 1 buttv(wee) = -gravity IF RND < .5 THEN butty(wee) = butty(wee) + ((RND - .5) * 10) particle (headx(wee + 2)), (butty(wee)), (fighterz(wee)), 2, 3 particle (headx(wee + 2)), (heady(wee + 2) + (RND * 20)), (fighterz(wee)), 1, 1 END IF IF heady(wee + 2) < -300 THEN heady(wee) = 0: buttv(wee) = 1: health%(wee) = health%(wee) - 5: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 1, 5 NEXT wee '---------------------------------------------------------------------------- CASE IS = 8 IF ticker% = 1 THEN camode% = 1 IF ticker% = 40 THEN panv = 0 '---------------------------------------------------------------------------- CASE IS = 9 IF ticker% = 45 THEN: panh = -35: panv = -5 IF ticker% = 55 THEN panh = 0: camode% = 1 IF headless%(1) = 0 AND headless%(2) = 0 THEN IF health%(2) = 0 THEN camode% = 2 IF health%(1) = 0 THEN camode% = 3 END IF 'Shock Jumping IF butty(1) > 80 OR butty(2) > 80 THEN IF buttx(1) - buttx(2) < 100 AND buttx(2) - buttx(1) < 100 THEN health%(1) = health%(1) - 2 health%(2) = health%(2) - 2 pslightning neckx(3), heady(3) + (RND * 25), fighterz(1), neckx(4), heady(4) + (RND * 25), fighterz(2), 50, flash2% END IF END IF FOR wee = 1 TO 2 IF position%(wee) < 8 OR position%(wee) > 11 THEN IF ABS(buttx(wee)) < ABS(ring%) AND foot1y(wee + 2) > ((buttx(wee) * trigger1) / 300) - 2 THEN trigger2 = trigger2 + buttx(wee) / 5000: butth(wee) = butth(wee) + (trigger1 / 2500) END IF NEXT wee trigger2 = trigger2 / 1.05 IF ABS(trigger1) > 75 THEN trigger2 = 0: IF trigger1 > 0 THEN trigger1 = 75 ELSE trigger1 = -75 trigger1 = trigger1 + trigger2 '---------------------------------------------------------------------------- CASE IS = 10 IF ticker% < 75 THEN panv = 1 IF ticker% = 75 THEN camode% = 1 IF headless%(1) = 0 AND headless%(2) = 0 THEN IF health%(2) = 0 THEN camode% = 2 IF health%(1) = 0 THEN camode% = 3 END IF trigger2 = trigger2 - .01 trigger1 = trigger1 + trigger2 IF trigger1 < 0 THEN trigger2 = .25: wx = -wx 'Color Change IF RND < .05 THEN SELECT CASE trigger3 CASE IS = 4: trigger3 = 12 CASE IS = 12: trigger3 = 15 END SELECT END IF 'Hack IF trigger1 < .5 THEN FOR wee = 1 TO 2 IF butty(wee) > -35 AND ABS(buttx(wee)) < 10 AND position%(wee) <> 8 AND position%(wee) <> 10 THEN soundticker% = 0: sbfx 17 health%(wee) = health%(wee) - 15 ko(wee) = ko(wee) - 3 particle (headx(wee + 2)), -20, 7, 1, 10 particle (headx(wee + 2)), -20, 7, 18, 10 trigger3 = 4 buttv(wee) = buttv(wee) - (RND * 3) neckx(wee) = neckx(wee) + ((RND - .5) * 5) END IF NEXT wee END IF 'Wall Stopping FOR wee = 1 TO 2 IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0 NEXT wee '---------------------------------------------------------------------------- CASE IS = 11 IF ticker% = 1 THEN ring% = 1500 IF ticker% = 50 THEN camode% = 1 FOR wee = 1 TO 2 IF buttx(wee) < -1500 THEN buttx(wee) = -1500 IF buttx(wee) > 1500 THEN buttx(wee) = 1500 NEXT wee '---------------------------------------------------------------------------- CASE IS = 12 IF ticker% = 1 THEN camode% = 1 FOR wee = 1 TO 2 IF buttx(wee) < -1500 THEN buttx(wee) = -1500 IF buttx(wee) > 1500 THEN buttx(wee) = 1500 NEXT wee 'Fall Off Building IF floor1 < 0 THEN FOR wee = 1 TO 2 IF ABS(buttx(wee)) > 400 THEN butth(wee) = -butth(wee) IF butty(wee) > floor1 AND ABS(buttx(wee)) < ring% THEN butth(wee) = -butth(wee) IF butty(wee) > -450 AND butty(wee) < -400 THEN fall (wee) IF butty(wee) > -50 THEN health%(wee) = 0 butty(wee) = 0 buttv(wee) = 0 decap (wee) FOR n% = 1 TO 10 particle buttx(wee) + ((RND - .5) * 20), -5, fighterz(wee), 2, 1 smear buttx(wee) + ((RND - .5) * 30), 0, fighterz(wee) + (RND - .5), 12 NEXT n% END IF NEXT wee IF butty(1) = 0 AND butty(2) = 0 THEN camode% = 1: floor1 = 0: ring% = 1500 END IF IF floor1 = 0 AND health%(1) = 100 AND health%(2) = 100 THEN midstage = 7 '---------------------------------------------------------------------------- CASE IS = 13 IF ticker% = 10 THEN buttv(1) = -15 buttv(2) = -15 FOR wee = -10 TO 10 STEP 2 particle (buttx(1) + wee), 0, 4, 24, 1 particle (buttx(2) + wee), 0, 4, 24, 1 NEXT wee END IF IF ticker% = 25 THEN floor1 = 0 floor2 = 0 camode% = 1 END IF 'Lightning strikes tree IF ticker% > 399 AND ticker% < 415 THEN IF ticker% = 400 THEN bgcolor% = 19: trigger1 = 15: trigger2 = 8: blur 5: soundticker% = 0: sbfx 17 pslightning 100 + (RND * 15), -90, 5, 135 + (RND * 15), RND * 5, 5, 50, flash1% pslightning -300, -200, 5, 140, 0, 5, 50, flash2% particle 105 + (RND * 35), -(RND * 70), 4.5, 9, 1 particle 115 + (RND * 30), -(RND * 30), 4.5, 15, 1 particle 115 + (RND * 30), -(RND * 50), 4.5, 16, 1 END IF 'Normal Lightning IF RND < .1 THEN IF RND < .3 THEN bgcolor% = 1 n% = ((RND - .5) * 500) pslightning (n%), (-300), (5 + (RND * 20)), (n%), (0), (5 + (RND * 20)), (100), (flash2%) ELSE pslightning ((RND - .5) * 800), (-200), (10 + (RND * 10)), ((RND - .5) * 800), (-200), (10 + (RND * 10)), (75), (flash2%) END IF END IF 'Rain IF trigger3 < .02 THEN trigger3 = trigger3 + .00001 starsoffset (trigger3 / 8), (trigger3) '---------------------------------------------------------------------------- CASE IS = 14 IF ticker% < 60 THEN camode% = 0 panh = -panx / 1000 IF pany > 475 THEN panv = 0 END IF IF ticker% = 75 THEN camode% = 1 IF ticker% = 75 THEN trigger1 = 1 FOR wee = 1 TO 2 'Burning Feet IF ABS(buttx(wee)) > 110 AND foot1y(wee + 2) > 495 THEN IF RND < .1 THEN health%(wee) = health%(wee) - 1 IF RND < .5 THEN particle (buttx(wee) + ((RND - .5) * 5)), (500), (fighterz(wee)), 16, 1 END IF 'Wall Stopping IF ABS(buttx(wee)) > 175 AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -175 THEN buttx(wee) = -175: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > 175 THEN buttx(wee) = 175: butth(wee) = 0: neckx(wee) = 0 NEXT wee '---------------------------------------------------------------------------- CASE IS = 15 IF ticker% <= 450 THEN IF ticker% = 1 THEN floor1 = 0: floor2 = 0 IF ticker% > 50 AND ticker% < 100 THEN LOCATE 10: COLOR 15: PRINT "This place is rank!" IF ticker% > 125 AND ticker% < 150 THEN butth(1) = 8 IF ticker% > 175 AND ticker% < 225 THEN LOCATE 10, 65: COLOR 4: PRINT "I smell blood!" IF ticker% = 175 THEN midstage = 4.5 panx = -500 panh = 5 buttx(1) = -375 butth(1) = 30 fighterz(1) = 5.5 buttx(2) = 75 END IF IF ticker% = 400 THEN camode% = 3: zoomd = -.008 IF ticker% > 200 AND ticker% <= 300 THEN trigger3 = trigger3 + 1 IF ticker% > 250 AND ticker% < 350 THEN LOCATE 10, 50: COLOR 4: PRINT "I don't know who you are..." IF ticker% > 350 AND ticker% < 400 THEN LOCATE 10, 60: COLOR 4: PRINT "But your dead!" IF ticker% = 450 THEN camode% = 1: zoomt = .02 ELSE FOR wee = 1 TO 2 'Hit Head On Roof IF heady(wee + 2) < -200 THEN heady(wee) = 0: buttv(wee) = 2: health%(wee) = health%(wee) - 8: particle (headx(wee + 2)), (heady(wee + 2)), (fighterz(wee)), 18, 20 'Wall Stopping IF ABS(buttx(wee)) > 200 AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -200 THEN buttx(wee) = -200: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > 200 THEN buttx(wee) = 200: butth(wee) = 0: neckx(wee) = 0 NEXT wee END IF '----------------------------------------------------------------------- Dojo CASE IS = 1000 IF ticker% = 1 THEN health%(2) = maxhp%(2): ko(2) = 75 IF ticker% >= 0 AND ticker% < 100 THEN COLOR 15: LOCATE 4 PRINT "Welcome to Master Bean's Dojo." END IF IF ticker% = 100 THEN control% = 1 IF ticker% >= 100 AND ticker% < 300 THEN COLOR 15: LOCATE 4 PRINT "If you would like to learn to fight" PRINT "come over here and hit me!" PRINT "Otherwise I'm giving you a tutorial." END IF IF ticker% = 300 THEN ticker% = 2 IF health%(2) < maxhp%(2) THEN stage% = 1002 ELSE stage% = 1001 END IF END IF '------------------------------------------------------------------- Tutorial CASE IS = 1001 IF ticker% = 3 THEN hands%(1) = 4: feet%(1) = 1: body%(1) = 2: head%(1) = 4 IF ticker% < 200 THEN COLOR 15: LOCATE 4 PRINT "Tutorial it is. You're wise to seek" PRINT "guidance before getting your head removed." END IF IF ticker% = 200 THEN panh = 1: zoomd = -.005 IF ticker% >= 200 AND ticker% < 300 THEN COLOR 15: LOCATE 4 PRINT "My name is Master Bean. I intend to" PRINT "to teach some basics or kill you trying." END IF IF ticker% = 300 THEN panh = 0 IF ticker% >= 300 AND ticker% < 400 THEN COLOR 15: LOCATE 4 PRINT "Let us begin." END IF IF ticker% = 400 THEN panh = -2: control% = 1 IF ticker% = 450 THEN camode% = 2 IF ticker% >= 400 AND ticker% < 500 THEN COLOR 15: LOCATE 4 PRINT "Try moving around using the Number Pad." END IF IF ticker% >= 500 AND ticker% < 700 THEN COLOR 15: LOCATE 4 PRINT "Try pressing Q or W." END IF IF ticker% >= 700 AND ticker% < 900 THEN COLOR 15: LOCATE 4 PRINT "These are your Punches." END IF IF ticker% >= 900 AND ticker% < 1100 THEN COLOR 15: LOCATE 4 PRINT "A and S are Kicks." END IF IF ticker% >= 1100 AND ticker% < 1300 THEN COLOR 15: LOCATE 4 PRINT "Note that keys 5 and 2 both Crouch." END IF IF ticker% >= 1300 AND ticker% < 1500 THEN COLOR 15: LOCATE 4 PRINT "Try pressing 5 then immediately" PRINT "press S. This will do a Sweep." END IF IF ticker% = 1500 THEN camode% = 1 IF ticker% >= 1500 AND ticker% < 1700 THEN COLOR 15: LOCATE 4 PRINT "Go ahead and try to sweep me." PRINT "I won't kill you just yet." END IF IF ticker% = 1700 THEN trigger1 = health%(2) IF ticker% >= 1700 AND ticker% < 1900 THEN COLOR 15: LOCATE 4 PRINT "Okay, Now I want you to try an Uppercut." PRINT "Get close and Press 5 then W." END IF IF ticker% >= 1900 AND ticker% < 2000 THEN COLOR 15: LOCATE 4 IF health%(2) = trigger1 THEN PRINT "Come on, hit me!" ELSE PRINT "Very Nice!" END IF END IF IF ticker% >= 2000 AND ticker% < 2200 THEN COLOR 15: LOCATE 4 PRINT "Now I want you to press E." PRINT "This will put you in Special Mode." END IF IF ticker% >= 2200 AND ticker% < 2400 THEN COLOR 15: LOCATE 4 PRINT "Notice the indicator in the corner" PRINT "of the screen when you press E." END IF IF ticker% >= 2400 AND ticker% < 2600 THEN COLOR 15: LOCATE 4 PRINT "Now try pressing Q while in" PRINT "Special Mode to throw Ball Lightning." END IF IF ticker% >= 2600 AND ticker% < 3000 THEN COLOR 15: LOCATE 4 PRINT "Remember that when you do a" PRINT "Special move you exit Special Mode." PRINT "Try your other Special Moves by" PRINT "using other attack keys." END IF IF ticker% >= 3000 AND ticker% < 3200 THEN COLOR 15: LOCATE 4 PRINT "Try doing a Nee Bash." PRINT "Get close to me and press E then S." END IF IF ticker% = 3150 THEN control% = 0: fighterfreeze (1) IF ticker% = 3200 THEN position%(2) = 86 IF ticker% >= 3250 AND ticker% < 3400 THEN COLOR 15: LOCATE 4 PRINT "That's for kicking my ass so bad!" control% = 1 END IF IF ticker% >= 3400 AND ticker% < 3500 THEN COLOR 15: LOCATE 4 PRINT "Stand back and watch." END IF IF ticker% = 3480 THEN position%(2) = 82: trigger1 = health%(1) IF ticker% >= 3500 AND ticker% < 3600 THEN COLOR 15: LOCATE 4 IF trigger1 > health%(1) THEN PRINT "I told you to sand back!" ELSE PRINT "I'm glad you didn't eat that." END IF END IF IF ticker% = 3600 THEN rage(1) = 100 IF ticker% >= 3600 AND ticker% < 3800 THEN COLOR 15: LOCATE 4 PRINT "That was an Energy Blast." PRINT "I want you to try now. Press D" END IF IF ticker% = 3900 THEN control% = 0: camode% = 2 IF ticker% >= 3800 AND ticker% < 4000 THEN COLOR 15: LOCATE 4 PRINT "The Energy Blast is a type of Super" PRINT "move. See the bar at the bottom left?" END IF IF ticker% >= 4000 AND ticker% < 4200 THEN COLOR 15: LOCATE 4 PRINT "That is your level of Rage." PRINT "Your Rage builds at a constant rate." END IF IF ticker% >= 4200 AND ticker% < 4400 THEN COLOR 15: LOCATE 4 PRINT "When your Rage is at it's full you" PRINT "may release it as a Super like the" PRINT "Energy Blast." END IF IF ticker% >= 4400 AND ticker% < 4600 THEN COLOR 15: LOCATE 4 PRINT "At the top of the screen are your" PRINT "Health and Awareness bars." END IF IF ticker% >= 4600 AND ticker% < 4800 THEN COLOR 15: LOCATE 4 PRINT "When your out of Health your Dead." PRINT "If the Awareness is gone your KO." END IF IF ticker% >= 4800 AND ticker% < 5000 THEN COLOR 15: LOCATE 4 PRINT "...and remember dead people don't" PRINT "have a chance at Round Two." END IF IF ticker% >= 5000 AND ticker% < 5200 THEN COLOR 15: LOCATE 4 PRINT "At the very top of the screen is" PRINT "the current cycles per second." END IF IF ticker% >= 5200 AND ticker% < 5400 THEN COLOR 15: LOCATE 4 PRINT "If the indicator is Red, the game" PRINT "is going too slow or too fast." END IF IF ticker% >= 5400 AND ticker% < 5600 THEN COLOR 15: LOCATE 4 PRINT "You can adjust this by changing" PRINT "settings in the options menus." END IF IF ticker% >= 5600 AND ticker% < 5800 THEN COLOR 15: LOCATE 4 PRINT "A true warrior knows when to be offensive" PRINT "and when to be defensive." END IF IF ticker% = 5800 THEN control% = 1 IF ticker% >= 5800 AND ticker% < 6200 THEN COLOR 15: LOCATE 4 PRINT "When you are in Special Mode your" PRINT "awareness level does not recharge." PRINT "Futher more, when you preform most" PRINT "special moves your awareness drops." END IF IF ticker% >= 6200 AND ticker% < 6400 THEN COLOR 15: LOCATE 4 PRINT "A failed attack may actually benefit" PRINT "your opponent! Be wise choosing your" PRINT "attacks." END IF IF ticker% >= 6400 AND ticker% < 6600 THEN COLOR 15: LOCATE 4 PRINT "This is the end of the lesson." PRINT "Prepare for a real fight!" END IF IF ticker% = 6600 THEN setfighter: camode% = 1 IF ticker% > 6600 THEN IF ticker% < 6650 THEN COLOR 15: LOCATE 4: PRINT "End of Lesson!" elbow1x(2) = 0 elbow1y(2) = -5 hand1x(2) = 0 hand1y(2) = -4 pslightning (hand1x(4)), (hand1y(4)), (midstage), (headx(3)), (heady(3)), (midstage), 50, flash2% health%(1) = health%(1) - 5 END IF 'Death's and KO's IF health%(1) <= 0 AND ticker% < 6600 THEN LOCATE 10: PRINT "Shit! Your no better then the rest!": PRINT "Get out of here!" IF health%(2) <= 0 THEN LOCATE 10: PRINT "Damn the dishonor! I've been beat by my own student!" IF ko(1) <= 0 THEN LOCATE 10 IF win%(2) < 2 THEN PRINT "Get up you wuss! Your better then that!" ELSE PRINT "Your no fighter! Get out of my dojo!" END IF END IF 'Avoid Projectile IF projectile%(1) > 0 AND position%(2) = 1 AND projectilex(1) > buttx(2) - 75 AND projectilex(1) < buttx(2) + 75 THEN jump 2, 2 'P2 Health/KO IF health%(2) < 25 AND position%(1) = 1 THEN position%(2) = 84 IF ko(2) < 25 THEN ko(2) = 25 'Wall Stopping IF ticker% < 6400 THEN FOR wee = 1 TO 2 IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0 NEXT wee END IF '------------------------------------------------------------------- Training CASE IS = 1002 IF ticker% < 100 THEN COLOR 15: LOCATE 4 IF position%(1) > 1 THEN IF position%(2) = 1 AND pticker%(2) > 75 THEN position%(2) = 37 PRINT "Calm Yourself!" ELSE PRINT "Training Begins." END IF END IF IF ticker% = 200 THEN camode% = 1: zoomd = -.006: AIactive%(2) = 1 IF ticker% >= 200 AND ticker% < 400 THEN COLOR 15: LOCATE 4 PRINT "Press Esc when you've had enough." END IF 'Inc. difficulty trigger1 = trigger1 + 1 IF trigger1 = 1000 THEN SCREEN , , 0, 0 trigger1 = 0: LOCATE 4 IF dif% < 10 THEN dif% = dif% + 1 SELECT CASE INT(RND * 5) + 1 CASE 1: PRINT "I see you didn't come to play games." CASE 2: PRINT "Alright, let's see what you got!" CASE 3: PRINT "Your advancing well." CASE 4: PRINT "Don't back down now." CASE 5: PRINT "Let me teach you about pain!" END SELECT PRINT "(Difficulty Increase)" ELSE PRINT "You've had enough training." END IF FOR wee = 0 TO 10: wee$ = INKEY$: NEXT wee: wee$ = "" SLEEP END IF 'Health/KO IF health%(1) < 50 AND position%(1) = 1 THEN position%(1) = 84 IF health%(2) < 50 AND position%(2) = 1 THEN position%(2) = 84 IF ko(2) < 25 THEN ko(2) = 25 'Wall Stopping FOR wee = 1 TO 2 IF ABS(buttx(wee)) > ABS(ring%) AND ABS(butth(wee)) > 1 THEN health%(wee) = health%(wee) - ABS(butth(wee) * 5): particle (buttx(wee)), (heady(wee + 2)), (fighterz(wee)), 1, 5 IF (buttx(wee)) < -ring% THEN buttx(wee) = -ring%: butth(wee) = 0: neckx(wee) = 0 IF (buttx(wee)) > ring% THEN buttx(wee) = ring%: butth(wee) = 0: neckx(wee) = 0 NEXT wee 'Death's and KO's IF health%(1) <= 5 THEN LOCATE 10: PRINT "Your good for nothing when your dead!" IF health%(2) <= 5 THEN LOCATE 10: PRINT "The gods must be with you..." IF ko(1) <= 0 THEN LOCATE 10 PRINT "C'Mon grandma throw some punches!" END IF '---------------------------------------------------------------------------- END SELECT END SUB SUB stagewindow (mode%) IF mode% = 1 THEN FOR wee = 10 TO 90 STEP 2 LINE (wee, 25)-(wee + 2, 45), 7, BF LINE (wee, 65)-(wee + 2, 75), 7, BF LINE (wee, 25)-(wee - 2, 75), 0, BF NEXT wee LINE (wee, 25)-(wee - 2, 75), 0, BF END IF IF mode% = 2 THEN FOR wee = 90 TO 10 STEP -2 LINE (wee, 25)-(wee - 2, 45), 7, BF LINE (wee, 65)-(wee - 2, 75), 7, BF LINE (wee, 25)-(wee + 2, 75), 0, BF NEXT wee LINE (wee, 25)-(wee + 2, 75), 0, BF END IF wee = 0 FOR y = 20 TO 50 STEP 30 FOR x = 5 TO 65 STEP 30 wee = wee + 1 LINE (x + 5, y + 5)-(x + 25, y + 25), 7, B IF i16m% = 0 THEN i16 x + 6, y + 6, .363, .355, "stage" + STR$((wee + stageset%) * -1) NEXT x NEXT y END SUB SUB stars2d (c1%, c2%, c3%) REM-----------------------------------------------Draw stars WINDOW SCREEN(0, 0)-(1, 1) FOR wee = 1 TO nstars% PSET (stars1x(wee), stars1y(wee)), c1% PSET (stars2x(wee), stars2y(wee)), c2% PSET (stars3x(wee), stars3y(wee)), c3% NEXT wee CALL window3d END SUB SUB stars3d (x1, y1, z1, x2, y2, z2, c1%, c2%, c3%) REM-----------------------------------------------Draw stars x2 = x2 - x1 y2 = y2 - y1 z2 = z2 - z1 FOR wee = 1 TO nstars% x3 = x1 + (stars1x(wee) * x2) y3 = y1 + (stars1y(wee) * y2) z3 = z1 + (stars1z(wee) * z2) pspset (x3), (y3), (z3), c1% x3 = x1 + (stars2x(wee) * x2) y3 = y1 + (stars2y(wee) * y2) z3 = z1 + (stars2z(wee) * z2) pspset (x3), (y3), (z3), c2% x3 = x1 + (stars3x(wee) * x2) y3 = y1 + (stars3y(wee) * y2) z3 = z1 + (stars3z(wee) * z2) pspset (x3), (y3), (z3), c3% NEXT wee END SUB SUB starsoffset (x, y) FOR wee = 1 TO nstars% stars1x(wee) = stars1x(wee) + x stars2x(wee) = stars2x(wee) + (x + x + x) stars3x(wee) = stars3x(wee) + (x + x + x + x + x) stars1y(wee) = stars1y(wee) + y stars2y(wee) = stars2y(wee) + (y + y + y) stars3y(wee) = stars3y(wee) + (y + y + y + y + y) IF x < 0 THEN IF stars1x(wee) < 0 THEN stars1x(wee) = 1 IF stars2x(wee) < 0 THEN stars2x(wee) = 1 IF stars3x(wee) < 0 THEN stars3x(wee) = 1 ELSE IF stars1x(wee) > 1 THEN stars1x(wee) = 0 IF stars2x(wee) > 1 THEN stars2x(wee) = 0 IF stars3x(wee) > 1 THEN stars3x(wee) = 0 END IF IF y < 0 THEN IF stars1y(wee) < 0 THEN stars1y(wee) = 1 IF stars2y(wee) < 0 THEN stars2y(wee) = 1 IF stars3y(wee) < 0 THEN stars3y(wee) = 1 ELSE IF stars1y(wee) > 1 THEN stars1y(wee) = 0 IF stars2y(wee) > 1 THEN stars2y(wee) = 0 IF stars3y(wee) > 1 THEN stars3y(wee) = 0 END IF NEXT wee END SUB SUB starsrnd '-------------------------- Randomize Stars FOR wee = 1 TO 20 stars1x(wee) = RND stars1y(wee) = RND stars1z(wee) = RND stars2x(wee) = RND stars2y(wee) = RND stars2z(wee) = RND stars3x(wee) = RND stars3y(wee) = RND stars3z(wee) = RND NEXT wee END SUB SUB window2d WINDOW SCREEN(0, 0)-(100, 100) END SUB SUB window3d WINDOW SCREEN(xx1, yy1)-(xx2, yy2) END SUB SUB winxwiny xx1 = midx% - winx yy1 = midy% - winy xx2 = midx% + winx yy2 = midy% + winy END SUB