1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-08 03:15:13 +00:00
qb64/programs/samples/qb45com/action/sfb2/sfb2.bas

10817 lines
346 KiB
QBasic
Raw Blame History

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 "<C:\SFB2.PTH>"
'------------------------------------------------------------- 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 "<C:\SFB2.PTH>"
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$ <> "<22><><EFBFBD><EFBFBD><EFBFBD>E=666<36><36><EFBFBD><EFBFBD>Generated Key File: Do Not Edit" THEN
fault$ = "writekey"
wee$ = "<22><><EFBFBD><EFBFBD><EFBFBD>E=666<36><36><EFBFBD><EFBFBD>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$ = "<22><><EFBFBD><EFBFBD><EFBFBD>E=666<36><36><EFBFBD><EFBFBD>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 "<Y/N>"
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 "<Y/N>"
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 "<22>"
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 "<22>": head%(1) = 1998: changed% = 1: GOTO 37
CASE "<22>": 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