'FIGHTING FURY

'HERE IS THE SOURCE CODE FOR FIGHTING FURY.
'IT IS A TWO PLAYER FIGHTING GAME.
'PLAYER 1 IS SANTA CLAUS AND PLAYER 2 IS FROSTY THE SNOWMAN.
'EACH PLAYER CAN PUNCH,KICK,PERFORM A SPECIAL ATTACK AND POWER UP.

'CODE.............

gosub initialise
gosub main_loop
exit
label main_loop
gosub first_prompt
gosub drawing
goto fight
return
label first_prompt
setrgb 1,255,255,255
text$ = "MATT PRODUCTIONS PRESENTS"
text 185,120,text$
setrgb 1,255,255,255
text$ = "PRESS START TO BEGIN"
text 215,356,text$
setrgb 1,255,5,25
tex$ = "fighting fury"
text 245,200,tex$
tex2$ = "__________"
text 245,210,tex2$
gosub wait_controller
return
label drawing
clear window
return
label wait_controller
repeat
c = peek("port1")
until (and(c,8)>0)
return
label initialise
open window 640,512
clear window
setrgb 1,0,0,0
return

label fight
open window 640,512
setrgb 1,255,255,255
text$ = "THE BATTLEFIELD IS SET.........."
text 185,50,text$
wait 2
setrgb 1,255,255,255
text$ = "SANTA CLAUS VS FROSTY"
text 205,210,text$
wait 2
text$ = "WHO WILL WIN?"
text 255,160,text$
wait 2
setrgb 1,0,100,0
text$ = "CONTROLS:"
text 265,200,text$
text$ = "left and right move"
text 225,220,text$
text$ = "x punches"
text 265,240,text$
text$ = "square kicks"
text 255,260,text$
text$ = "when your special meter is up a bit"
text 155,280,text$
text$ = "hit select to perform a special"
text 168,295,text$
text$ = "hold l1 and r1 to build up your special bar"
text 118,315,text$
text$ = "but doing this decreases your health"
text 158,335,text$
text$ = "punches and kicks build up your special"
text 146,355,text$
inkey$
clear window
open window 640,512
draw = 0
plx = 100
ply = 280
plx2 = 540
ply2 = 280
p1h = 295
p1s = 55
p1name$ = "SANTA CLAUS"
p2h = 355
p2s = 355
p2name$ = "FROSTY"
label framestart
setdrawbuf dw

if p1s > 295 p1s = 295
if p1s < 55 p1s = 55
if p2s > 595 p2s = 595
if p2s < 355 p2s = 355
if p1h < 56 end
if p2h > 595 end

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx + 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 37,ply + 29
fill rect plx + 37,ply + 30,plx + 25,ply + 70
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32

rem controls
c = peek("port1")
c2 = peek("port2")
if and (c,128) <> 0 then plx = plx - 5
end if
if and (c,32) <> 0 then plx = plx + 5
end if
if and (c2,32) <> 0 then plx2 = plx2 + 5
end if
if and (c2,128) <> 0 then plx2 = plx2 - 5
end if
if plx < 29 then plx = 29 end if
if plx > 580 then plx = 580 end if
if plx2 < 29 then plx2 = 29 end if
if plx2 > 580 then plx2 = 580 end if
if plx > plx2 - 75 then
plx = plx2 - 75
end if
if plx < plx - 75 then
plx2 = plx - 75
end if
if and (c,16384) <> 0 then
gosub player1punch
end if
if and (c,32768) <> 0 then
gosub player1kick
end if
if and (c2,16384) <> 0 then
gosub player2punch
end if
if and (c2,32768) <> 0 then
gosub player2kick
end if
if and (c,3072) = 3072 then
p1s = p1s + .1
p1h = p1h - .1
end if
if and (c2,3072) = 3072 then
p2s = p2s + .1
p2h = p2h + .1
end if
if (and (c,1) <> 0 ) and (p1s > 75) then
gosub player1special
end if
if (and (c2,1) <> 0) and (p2s > 375) then
gosub player2special
end if
setdispbuf dw
dw = 1 - dw
goto framestart

label player1punch

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx + 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 67,ply + 29
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

if (plx2 - plx) <= 90 then
p2h = p2h + 1
p1s = p1s + .4
end if

return

label stats
setrgb 1,0,0,0
text 60,150,p1name$
text 530,150,p2name$
setrgb 1,0,0,0
fill rect 50,50,290,80
setrgb 1,255,0,0
fill rect 55,55,p1h,85

setrgb 1,0,0,0
fill rect 50,100,290,130
setrgb 1,0,0,255
fill rect 55,105,p1s,135

setrgb 1,0,0,0
fill rect 360,50,600,80
setrgb 1,255,0,0
fill rect p2h,55,595,85

setrgb 1,0,0,0
fill rect 360,100,600,130
setrgb 1,0,0,255
fill rect 355,105,p2s,135

return

label player1kick

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 72,ply + 89
fill rect plx - 20,ply + 16,plx - 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 37,ply + 29
fill rect plx + 37,ply + 30,plx + 25,ply + 70
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

if (plx2 - plx) <= 90 then
p2h = p2h + 2
p1s = p1s + .2
end if

return

label player2punch

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx + 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 37,ply + 29
fill rect plx + 37,ply + 30,plx + 25,ply + 70
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32
fill circle plx2 - 75,ply2 + 33,20

if (plx2 - plx) <= 90 then
p1h = p1h - 1
p2s = p2s + .4
end if

return

label player2kick

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx + 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 37,ply + 29
fill rect plx + 37,ply + 30,plx + 25,ply + 70
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2 - 25,ply2 + 43,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32

if (plx2 - plx) <= 90 then
p1h = p1h - 2
p2s = p2s + .2
end if

return

label player1special

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply2 + 32
fill rect plx2 + 27,ply2 + 35,plx2 + 55,ply2 + 32

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx - 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 67,ply + 29
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5
setrgb 1,255,0,0
fill triangle plx + 80,ply + 20 to plx + 200,plx + 40 to plx + 170,ply +210
setrgb 1,190,190,0
fill triangle plx + 80,ply + 60 to plx + 150,plx + 20 to plx + 190,ply +190

if (plx2 - plx) <= 90 then
p2h = p2h  + 10
p1s = p1s - 20
end if

return

label player2special

rem grass
setrgb 1,12,123,21
fill rect 0,0,640,512
gosub stats

rem player 1
setrgb 1,490,169,0
fill circle plx,ply,16
setrgb 1,200,23,17
fill rect plx - 20,ply + 16,plx + 22,ply + 68
fill rect plx - 20,ply + 69,plx - 2,ply + 125
fill rect plx,ply + 69,plx + 22,ply + 125
fill rect plx - 20,ply + 16,plx + 35,ply + 29
fill rect plx - 35,ply + 30,plx - 23,ply + 70
fill rect plx + 22,ply + 16,plx + 37,ply + 29
fill rect plx + 37,ply + 30,plx + 25,ply + 70
setrgb 1,220,220,220
fill circle plx,ply + 10,12
setrgb 1,490,169,0
fill circle plx,ply + 10,5
setrgb 1,200,23,17
setrgb 2,200,23,17
setrgb 3,200,23,17
gtriangle plx - 20,ply - 10 to plx + 20,ply - 10 to plx - 1,ply - 45
setrgb 1,255,255,255
fill circle plx + 2,ply - 40,5

rem player 2
setrgb 1,200,200,200
fill circle plx2,ply2,16
fill circle plx2,ply2 + 43,30
fill circle plx2,ply2 + 95,35
setrgb 1,80,80,80
fill rect plx2 - 27,ply2 + 35,plx2 - 55,ply + 32
fill rect plx2 + 27,ply + 35,plx2 + 55,ply2 + 32
setrgb 1,200,200,200
fill circle plx,ply + 40,90

if (plx2 - plx) <= 90 then
p1h = p1h - 10
p2s = p2s - 20
end if

return



