Attribute VB_Name = "Enemy18"
Public SUB badguy18()
Form1.Pic_radar.CLS
Form1.Pic_radarv.CLS
FOR x = 0 TO CurLevel.NumOfBadGuys
IF BadGuys(x).Activated = 0 THEN GOTO 10
IF x = 20 THEN
Set BadGuys(x).PicT = Form2.PicR
Set BadGuys(x).mask = Form2.PicRm
BadGuys(x).bulletlxpos = 7
BadGuys(x).bulletlypos = 54
BadGuys(x).bulletrxpos = 67
BadGuys(x).bulletrypos = 54
BadGuys(x).bulletcxpos = 34
BadGuys(x).bulletcypos = 77
BadGuys(x).xsize = 76
BadGuys(x).ysize = 79
END IF
IF x < 20 THEN
Set BadGuys(x).PicT = Form2.PicZ
Set BadGuys(x).mask = Form2.PicZm
BadGuys(x).bulletlxpos = 21
BadGuys(x).bulletlypos = 35
BadGuys(x).bulletrxpos = 52
BadGuys(x).bulletrypos = 35
BadGuys(x).xsize = 74
BadGuys(x).ysize = 50
END IF
IF BadGuys(x).Activated = 1 AND BadGuys(x).Exploding = 0 THEN
IF x > 1 AND numsec < 50 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 3 AND numsec < 100 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 5 AND numsec < 150 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 7 AND numsec < 200 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 9 AND numsec < 250 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 11 AND numsec < 300 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 13 AND numsec < 350 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 15 AND numsec < 400 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x > 17 AND numsec < 450 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF x = 20 AND numsec < 500 THEN BadGuys(x).y = Form1.PicMain.ScaleTop - 150
IF numsec = 600 THEN flgm = 0
IF x < 20 THEN
IF BadGuys(x).y > (Form1.PicMain.ScaleTop - 20) AND flgm = 0 THEN
flgm = 1
Form1.Tmr_flgm.Enabled = True
END IF
IF flgm = 1 OR flgm = 2 THEN
IF BadGuys(x).DstX < BadGuys(x).x THEN
BadGuys(x).x = BadGuys(x).x - BadGuys(x).Velocity
ELSE
BadGuys(x).x = BadGuys(x).x + BadGuys(x).Velocity
END IF
BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
END IF
IF flgm = 0 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
IF ABS(BadGuys(x).x - BadGuys(x).DstX) < CurLevel.Velocity + 1 THEN BadGuys(x).DstX = RND * ((Form1.PicMain.ScaleWidth - 70) - Form1.PicMain.ScaleLeft)
IF ABS(BadGuys(x).y - BadGuys(x).DstY) < CurLevel.Velocity + 1 THEN BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
END IF
IF x = 20 THEN
IF BadGuys(x).DstX < BadGuys(x).x THEN
BadGuys(x).x = (BadGuys(x).x - BadGuys(x).Velocity) + 2
ELSE
BadGuys(x).x = BadGuys(x).x + BadGuys(x).Velocity
END IF
IF BadGuys(x).y >= (Form1.PicMain.ScaleTop - 20) AND flgm = 0 THEN
flgm = 1
Form1.Tmr_flgm.Interval = 1
Form1.Tmr_flgm.Enabled = True
BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
END IF
IF flgm = 1 THEN
IF BadGuys(x).DstY < BadGuys(x).y THEN
BadGuys(x).y = (BadGuys(x).y - BadGuys(x).Velocity) + 2
ELSE
BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
END IF
END IF
IF flgm = 0 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
IF Form1.Tmr_flgm.Interval > 80 THEN BadGuys(x).y = BadGuys(x).y + BadGuys(x).Velocity
IF ABS(BadGuys(x).x - BadGuys(x).DstX) < CurLevel.Velocity + 1 THEN BadGuys(x).DstX = RND * ((Form1.PicMain.ScaleWidth - 70) - Form1.PicMain.ScaleLeft)
IF ABS(BadGuys(x).y - BadGuys(x).DstY) < CurLevel.Velocity + 1 THEN BadGuys(x).DstY = RND * (Form1.PicMain.ScaleHeight - 200)
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, BadGuys(x).xsize, BadGuys(x).ysize, BadGuys(x).mask.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, BadGuys(x).xsize, BadGuys(x).ysize, BadGuys(x).PicT.hdc, 0, 0, vbSrcAnd
BitBlt Form1.Pic_radar.hdc, BadGuys(x).x / (diffwidth - 0.7), (BadGuys(x).y + 100) / diffheight, 6, 6, Form1.rad.hdc, 0, 0, vbSrcCopy
IF roll = True THEN BitBlt Form1.Pic_radarv.hdc, BadGuys(x).x / (diffwidth - 0.7), (BadGuys(x).y + 100) / diffheight, 6, 6, Form1.rad2.hdc, 0, 0, vbSrcCopy
END IF
IF x = 20 AND BadGuys(x).Damage > 200 THEN BadGuys(x).Exploding = 1
IF x < 20 AND BadGuys(x).Damage > CurLevel.Damagelimit THEN BadGuys(x).Exploding = 1
IF BadGuys(x).Activated = 1 THEN
BadGuys(x).Firing = INT(RND * CurLevel.OddsOfFiring)
ELSE
BadGuys(x).Firing = 0
END IF
'Firing bullets
IF BadGuys(x).y > Form1.PicMain.ScaleTop + 20 THEN
FOR y = 0 TO 0
IF BadGuys(x).Activated > 0 AND BadGuys(x).Firing = 1 THEN
IF BadGuys(x).Bulletl(y).Activated = 0 THEN
BadGuys(x).Bulletl(y).Activated = 1
BadGuys(x).Bulletl(y).x = BadGuys(x).x + BadGuys(x).bulletlxpos
BadGuys(x).Bulletl(y).y = BadGuys(x).y + BadGuys(x).bulletlypos
END IF
IF BadGuys(x).Bulletr(y).Activated = 0 THEN
BadGuys(x).Bulletr(y).Activated = 1
BadGuys(x).Bulletr(y).x = BadGuys(x).x + BadGuys(x).bulletrxpos
BadGuys(x).Bulletr(y).y = BadGuys(x).y + BadGuys(x).bulletrypos
END IF
IF x = 20 THEN
IF BadGuys(x).Bulletc(y).Activated = 0 THEN
BadGuys(x).Bulletc(y).Activated = 1
BadGuys(x).Bulletc(y).x = BadGuys(x).x + BadGuys(x).bulletcxpos
BadGuys(x).Bulletc(y).y = BadGuys(x).y + BadGuys(x).bulletcypos
END IF
END IF
BadGuys(x).BulletsActivated = BadGuys(x).BulletsActivated + 1
END IF
NEXT y
END IF
IF CollisionDetect(ShipX, ShipY, Form2.Pictm, BadGuys(x).x, BadGuys(x).y, BadGuys(x).mask, Form2.PicTemp) THEN
Exploding = 1
BadGuys(x).Exploding = 1
END IF
10 NEXT x
FOR x = 0 TO CurLevel.NumOfBadGuys
FOR y = 0 TO 0
IF x < 20 THEN
IF BadGuys(x).Bulletl(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletl(y).y = BadGuys(x).Bulletl(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletl(y).y > Form1.PicMain.ScaleHeight THEN
BadGuys(x).Bulletl(y).Activated = 0
bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 6, 6, Form2.PicBBulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 6, 6, Form2.PicGBullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletl(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletl(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
ABS((BadGuys(x).Bulletl(y).y - 25) - ShipY) < 18 THEN
Form2.Picture1.Picture = Form2.PicFlash.Picture
Health = Health - 10
UpdateHealth
BadGuys(x).Bulletl(y).Activated = 0
bullets = False
END IF
END IF
IF BadGuys(x).Bulletr(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletr(y).y = BadGuys(x).Bulletr(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletr(y).y > Form1.PicMain.ScaleHeight THEN
BadGuys(x).Bulletr(y).Activated = 0
bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 6, 6, Form2.PicBBulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 6, 6, Form2.PicGBullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletr(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletr(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
ABS((BadGuys(x).Bulletr(y).y - 25) - ShipY) < 18 THEN
Form2.Picture1.Picture = Form2.PicFlash.Picture
Health = Health - 10
UpdateHealth
BadGuys(x).Bulletr(y).Activated = 0
bullets = False
END IF
END IF
END IF
IF x = 20 THEN
IF BadGuys(x).Bulletl(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletl(y).x = BadGuys(x).Bulletl(y).x - COS(10 * Radians)
BadGuys(x).Bulletl(y).y = BadGuys(x).Bulletl(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletl(y).y > Form1.PicMain.ScaleHeight THEN
BadGuys(x).Bulletl(y).Activated = 0
bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 8, 8, Form2.PicABulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletl(y).x, BadGuys(x).Bulletl(y).y, 8, 8, Form2.PicABullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletl(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletl(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
ABS((BadGuys(x).Bulletl(y).y - 25) - ShipY) < 18 THEN
Form2.Picture1.Picture = Form2.PicFlash.Picture
Health = Health - 10
UpdateHealth
BadGuys(x).Bulletl(y).Activated = 0
bullets = False
END IF
END IF
IF BadGuys(x).Bulletr(y).Activated = 1 THEN
bullets = True
BadGuys(x).Bulletr(y).x = BadGuys(x).Bulletr(y).x + COS(10 * Radians)
BadGuys(x).Bulletr(y).y = BadGuys(x).Bulletr(y).y + CurLevel.BulletSpeed
IF BadGuys(x).Bulletr(y).y > Form1.PicMain.ScaleHeight THEN
BadGuys(x).Bulletr(y).Activated = 0
bullets = False
END IF
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 8, 8, Form2.PicABulletM.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletr(y).x, BadGuys(x).Bulletr(y).y, 8, 8, Form2.PicABullet.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletr(y).x + Form2.PicCBullet.ScaleWidth > ShipX AND BadGuys(x).Bulletr(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
ABS((BadGuys(x).Bulletr(y).y - 25) - ShipY) < 18 THEN
Form2.Picture1.Picture = Form2.PicFlash.Picture
Health = Health - 10
UpdateHealth
BadGuys(x).Bulletr(y).Activated = 0
bullets = False
END IF
END IF
IF BadGuys(x).Bulletc(y).Activated = 1 THEN
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletc(y).x, BadGuys(x).Bulletc(y).y, 6, Form1.PicMain.ScaleHeight - BadGuys(x).Bulletc(y).y, Form2.Piclaser1m.hdc, 0, 0, vbMergePaint
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).Bulletc(y).x, BadGuys(x).Bulletc(y).y, 6, Form1.PicMain.ScaleHeight - BadGuys(x).Bulletc(y).y, Form2.Piclaser1.hdc, 0, 0, vbSrcAnd
IF BadGuys(x).Bulletc(y).x > ShipX AND BadGuys(x).Bulletc(y).x < ShipX + Form2.Picture1.ScaleWidth AND _
ShipY > Form1.PicMain.ScaleTop + BadGuys(x).Bulletc(y).y THEN
Exploding = 1
END IF
BadGuys(x).Bulletc(y).Activated = 0
END IF
END IF
NEXT y
BadGuys(x).BulletsActivated = 0
NEXT x
FOR x = 0 TO CurLevel.NumOfBadGuys
IF BadGuys(x).Activated = 1 AND BadGuys(x).y > Form1.PicMain.ScaleHeight THEN
Tempclac = Tempclac + 1
BadGuys(x).Activated = 0
END IF
IF BadGuys(x).Exploding = 1 THEN
BadGuys(x).Activated = 0
IF fboom = 1 THEN
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 75, 64, Form2.PicExplodeM.hdc, 77 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 75, 64, Form2.PicExplode.hdc, 77 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
ELSEIF fboom = 2 THEN
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 60, 60, Form2.PicExplode1m.hdc, 60 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 60, 60, Form2.PicExplode1.hdc, 60 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
ELSE
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 80, 70, Form2.PicExplode2m.hdc, 80 * BadGuys(x).ExplodingFrame, 0, vbPatInvert
BitBlt Form1.PicScreenBuffer.hdc, BadGuys(x).x, BadGuys(x).y, 80, 70, Form2.PicExplode2.hdc, 80 * BadGuys(x).ExplodingFrame, 0, vbSrcPaint
END IF
BadGuys(x).ExplodingFrame = BadGuys(x).ExplodingFrame + 1
IF BadGuys(x).ExplodingFrame = 13 THEN
BadGuys(x).Exploding = 0
score = score + 50
IF x = 20 THEN score = score + 50
TempCalc = TempCalc + 1
fboom = fboom + 1
IF fboom > 3 THEN fboom = 1
END IF
END IF
NEXT x
IF Tempclac + TempCalc >= CurLevel.NumOfBadGuys + 1 AND bullets = False THEN
flgm = 0
Form1.Tmr_flgm.Interval = 1
Form1.Tmr_flgm.Enabled = False
stage = 0
END IF
numsec = numsec + 1
END SUB