FormBW.frm
上传用户:life_sale
上传日期:2021-07-23
资源大小:805k
文件大小:394k
- End If
- If MG_Lvl >= 4 Then
- Wave_Pattern = 4
- Bull_Delay = 4
- End If
- If MG_Lvl >= 5 Then
- Wave_Pattern = 5
- Bull_Type_Limit = 3
- End If
- If MG_Lvl >= 6 Then
- Wave_Pattern = 6
- Bull_Type_Limit = 4
- End If
- If MG_Lvl >= 7 Then
- Wave_Pattern = 7
- Bull_Delay = 3
- End If
- If MG_Lvl >= 8 Then
- Wave_Pattern = 8
- Bull_Delay = 2
- End If
- If MG_Lvl >= 9 Then
- Wave_Pattern = 9
- Bull_Delay = 1
- End If
- If MG_Lvl >= 10 Then
- Wave_Pattern = 10
- Bull_Type_Limit = 5
- End If
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = Wave_Pattern
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 4 * MG_Lvl
- Bull(i).PosX = ShipX + -540
- Bull(i).PosY = ShipY - 200
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If '-End 1
- End If
- End If '-End PLASMA WAVE
-
- If SHP(0) = 4 Then 'VULCAN BLUE
- If Bull_Delay = 0 Then
- Const Vulcan_Blue_Damage = 20
- If MG_Lvl >= 1 Then '----
- B_Speed = 300 'Not Used
- Bull_Delay = 8
- Bull_Type_Limit = 80
- If MG_Lvl >= 2 Then
- Bull_Delay = 6
- End If
- If MG_Lvl >= 3 Then
- B_Speed = 350
- End If
- If MG_Lvl >= 4 Then
- If MG_Lvl >= 5 Then
- Bull_Delay = 4
- End If
- If MG_Lvl >= 6 Then
- B_Speed = 400
- End If
- If MG_Lvl >= 7 Then
- Bull_Delay = 3
- End If
- If MG_Lvl >= 8 Then
- B_Speed = 450
- End If
- If MG_Lvl >= 9 Then
- If MG_Lvl >= 10 Then
- B_Speed = 800
- End If
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = Vulcan_Blue_Damage
- Bull(i).PosX = ShipX + 940
- Bull(i).PosY = ShipY + 600
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = Vulcan_Blue_Damage
- Bull(i).PosX = ShipX - 460
- Bull(i).PosY = ShipY + 600
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If '-End 9
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = Vulcan_Blue_Damage
- Bull(i).PosX = ShipX + 580
- Bull(i).PosY = ShipY + 300
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = Vulcan_Blue_Damage
- Bull(i).PosX = ShipX - 100
- Bull(i).PosY = ShipY + 300
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If '-End 4
- For i = 0 To Bull_Type_Limit
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = Vulcan_Blue_Damage
- Bull(i).PosX = ShipX + 240
- Bull(i).PosY = ShipY - 100
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If '-End 1
- End If
- End If '-End Vulcan Blue
- End If '-END FOR ALL MG's
-
-
- If Lock_SideGun = False And Lock_All = False And Ship_Firing = True Then
- If SHP(1) = 0 Then 'MICRO MISSILES
- If Bull_Delay2 = 0 Then
- Static Micro_LR As Integer
- If SG_Lvl >= 1 Then '----
- B_Speed = 0 'Not Used
- Bull_Delay2 = 1
- Bull_Type_Limit = 1
- If SG_Lvl >= 2 Then '----
- Bull_Type_Limit = 3
- End If
- If SG_Lvl >= 3 Then '----
- Bull_Type_Limit = 5
- End If
- If SG_Lvl >= 4 Then '----
- Bull_Type_Limit = 7
- End If
- If SG_Lvl >= 5 Then '----
- Bull_Type_Limit = 9
- End If
-
- If Micro_LR = 0 Then
- For i = 200 To (Bull_Type_Limit + 200)
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 5 + (5 * SG_Lvl)
- Bull(i).PosX = ShipX + 0
- Bull(i).PosY = ShipY + 100
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- Micro_LR = 1
- Else:
- Micro_LR = 0
- For i = 200 To (Bull_Type_Limit + 200)
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 5 + (5 * SG_Lvl)
- Bull(i).PosX = ShipX + 560
- Bull(i).PosY = ShipY + 100
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If
- End If '-End 1
- End If
- End If '-END FOR MICRO MISSILES
-
- If SHP(1) = 1 Then 'PULSE RING
- If Bull_Delay2 = 0 Then
- Static Pulse_Angle As Integer
- If SG_Lvl >= 1 Then '----
- B_Speed = 0 'Not Used
- Bull_Delay2 = 1
- Bull_Type_Limit = 0
- Pulse_Angle = Pulse_Angle + 1
- If SG_Lvl >= 1 And SG_Lvl <= 2 Then
- If Pulse_Angle > 3 Then Pulse_Angle = 1
- End If
- If SG_Lvl >= 3 And SG_Lvl <= 4 Then
- If Pulse_Angle > 6 Then Pulse_Angle = 4
- End If
- If SG_Lvl >= 5 Then
- If Pulse_Angle > 9 Then Pulse_Angle = 7
- End If
- For i = 200 To 300
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = Pulse_Angle
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 5 * SG_Lvl
- Bull(i).PosX = ShipX - 600
- Bull(i).PosY = ShipY - 700
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If '-End 1
- End If
- End If 'END FOR PULSE RING
-
- If SHP(1) = 2 Then 'CRESCENT BLADES
- If Bull_Delay2 = 0 Then
- Dim Cres_Angle As Integer
- Static CresLR(100) As Integer
- If SG_Lvl >= 1 Then '----
- B_Speed = 0 'Not Used
- Bull_Delay2 = 5
- Bull_Type_Limit = 1
- Cres_Angle = Cres_Angle + 1
- If SG_Lvl >= 2 Then
- Bull_Type_Limit = 3
- End If
- If SG_Lvl >= 3 Then
- Bull_Type_Limit = 5
- End If
- If SG_Lvl >= 4 Then
- Bull_Type_Limit = 7
- End If
- If SG_Lvl >= 5 Then
- Bull_Type_Limit = 9
- End If
- For i = 200 To (200 + Bull_Type_Limit)
- If Bull(i).Used = False Then
- CresLR(i - 200) = i Mod 2
- Bull(i).Used = True
- Bull(i).Kind = Cres_Angle
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 5 + (SG_Lvl * 15)
- Bull(i).PosX = ShipX + 150
- Bull(i).PosY = ShipY - 0
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If
- End If
- End If '-END FOR CRESCENT BLADES
-
- If SHP(1) = 3 Then 'CREEP MINE
- If Bull_Delay2 = 0 Then
- If SG_Lvl >= 1 Then '----
- B_Speed = 50 'Not Used
- Bull_Delay2 = 14
- Bull_Type_Limit = 2
- If SG_Lvl >= 2 Then
- Bull_Type_Limit = 3
- Bull_Delay2 = 12
- End If
- If SG_Lvl >= 3 Then
- Bull_Type_Limit = 5
- Bull_Delay2 = 10
- End If
- If SG_Lvl >= 4 Then
- Bull_Type_Limit = 7
- Bull_Delay2 = 8
- End If
- If SG_Lvl >= 5 Then
- Bull_Type_Limit = 10
- Bull_Delay2 = 6
- End If
- For i = 200 To (200 + Bull_Type_Limit)
- If Bull(i).Used = False Then
- Bull(i).Used = True
- Bull(i).Kind = 1
- Bull(i).Dire = 8
- Bull(i).Span = 0
- Bull(i).Dama = 25 + (25 * SG_Lvl)
- Bull(i).PosX = ShipX + 240
- Bull(i).PosY = ShipY - 0
- Bull(i).Spd = B_Speed
- Exit For
- End If
- Next i
- End If
- End If
- End If '-END FOR CREEP MINE
-
- End If '-END FOR ALL SIDE GUNS
-
-
- 'Decrease the counter for the delay for the next bullet to appear
- Bull_Delay = Bull_Delay - 1
- Bull_Delay2 = Bull_Delay2 - 1
- If Bull_Delay <= 0 Then Bull_Delay = 0
- If Bull_Delay2 <= 0 Then Bull_Delay2 = 0
-
-
- 'MANIPULATE EXISTING BULLET
- 'This sub modifies the existing bullets created in the codes above.
- 'Modifications are on their X and Y coordinates, and their availability
- For i = 0 To 300
- 'If bullet is created and still in play field...
- If Bull(i).Used = True Then
-
- 'Increases their time in play ...
- Bull(i).Span = Bull(i).Span + 1
-
- 'These codes are for specialized weapons and their
- 'behaviors. it doesn't affect other general weapons
- If (SHP(0) = 2 And i < 200) Then
- If Bull(i).Span >= ((Rnd * 10) + Particle_Range) Then Bull(i).Used = False 'Particle Burst
- End If
- If (SHP(1) = 2 And i >= 200 And i < 290) Then
- If Bull(i).Span < 100 Then Bull(i).PosY = Bull(i).PosY + (15 * Bull(i).Span) 'Crescent Blade
- End If
- If (SHP(1) = 3 And (i >= 200 And i < 290)) And (Bull(i).Span Mod 15 = 1) Then 'Creep Mine
- Bull(i).Kind = 2
- Else:
- If SHP(1) = 3 And i >= 200 And i < 290 Then Bull(i).Kind = 1
- End If
-
- 'These codes changes the Bullet's X/Y coordinates
- 'based on their bullet's direction (Bull.dire)
- If Bull(i).Dire = 7 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 3 * 2
- If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 72 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 3
- If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 73 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 7
- If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 79 And i < 200 Then
- Bull(i).PosX = Bull(i).PosX + ((Particle_EndX(i) - Particle_StartX(i)) / 20)
- Bull(i).PosY = Bull(i).PosY - ((Particle_StartY(i) - Particle_EndY(i)) / 20)
- If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 8 Then
- If (SHP(0) = 3 And i < 200) Or (SHP(1) = 0 And i >= 200 And i < 290) Or (SHP(1) = 2 And i >= 200 And i < 290) Or (SHP(2) = 0 And i >= 290 And i <= 300) Then Bull(i).Spd = Bull(i).Span * Bull(i).Span 'Plasma Wave, Micro Missile, Crescent Blade, Inferno Disc
- If (SHP(1) = 2 And i >= 200 And i < 290) Then
- If CresLR(i - 200) = 0 Then Bull(i).PosX = Bull(i).PosX - ((-15 + Bull(i).Span) * ((i - 200) + 10)) 'cresent blades
- If CresLR(i - 200) = 1 Then Bull(i).PosX = Bull(i).PosX + ((-15 + Bull(i).Span) * ((i - 200) + 10))
- End If
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd
- If (SHP(0) = 1 And i < 200) Then Bull(i).PosX = Laser_PosX 'FOR LASER ONLY
- If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 9 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 3 * 2
- If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 92 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 3
- If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- If Bull(i).Dire = 93 Then
- Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
- Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 7
- If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
- End If
- End If
-
- 'PAINT BULLET
- 'If the bullet is still in play field, it
- 'will be painted and show to the player.
- 'Different ship configurations will show
- 'different bullet sprites from their associated
- 'imagelist...
- If Bull(i).Used = True Then
- If i < 200 Then
- If SHP(0) = 0 Then Img(4).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(0) = 1 Then Img(6).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(0) = 2 Then Img(7).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(0) = 3 Then Img(8).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(0) = 4 Then Img(14).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- End If
- If i >= 200 And i < 290 Then
- If SHP(1) = 0 Then Img(9).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(1) = 1 Then Img(10).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If SHP(1) = 2 Then
- Bull(i).Kind = Bull(i).Kind + 1
- If Bull(i).Kind > 4 Then Bull(i).Kind = 1
- Img(11).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- End If
- If SHP(1) = 3 Then Img(12).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- End If
- If i >= 290 Then
- If SHP(2) = 0 Then
- Bull(i).Kind = Bull(i).Kind + 1
- If Bull(i).Kind > 4 Then Bull(i).Kind = 1
- Img(17).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- End If
- If SHP(2) = 1 Then
- Bull(i).Kind = Bull(i).Kind + 1
- If Bull(i).Kind > 4 Then Bull(i).Kind = 1
- Img(5).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- End If
- If SHP(2) = 3 Then
- Bull(i).Kind = Bull(i).Kind + 1
- Img(3).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
- If Bull(i).Kind > 21 Then
- Bull(i).Used = False
- Bull(i).Kind = 0
- End If
- End If
- End If
- End If
-
- Next i
-
- '-----------------------------------------
- 'MOVING ENEMY
- 'This portion of code is similar to the moving patterns
- 'of the player's bullet above.
- 'At different time (ship's span), these enemy ships
- 'will move with different speed and in different direction
- For i = 1 To 40
- If EShip(i).Used = True Then
- EShip(i).Span = EShip(i).Span + 1
-
- If EShip(i).Patt = 4646 Then 'Boss Left Right - Left Right
- Static BossLR As Boolean
- If EShip(i).PosY < 1560 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- If EShip(i).PosY >= 940 Then
- If BossLR = True Then
- EShip(i).PosX = EShip(i).PosX - EShip(i).Spd
- If EShip(i).PosX < 980 Then BossLR = False
- Else:
- EShip(i).PosX = EShip(i).PosX + EShip(i).Spd
- If EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) > 5380 Then BossLR = True
- End If
- End If
- If EShip(i).Span Mod 10 = 1 Then Call Check_Fire(1, i)
- End If
-
- If EShip(i).Patt = 555 Then 'Burst-Burst
- If EShip(i).Span Mod 40 < 10 Then Call Check_Fire(17, i)
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- End If
- If EShip(i).Patt = 88 Then 'Straight Down
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- For x = 1 To 16
- If EShip(i).Firing_Patt = x And EShip(i).Span Mod 25 = 20 Then Call Check_Fire(x, i)
- Next x
- If EShip(i).Firing_Patt = 32147 And EShip(i).Span Mod 7 = 1 Then Call Check_Fire(Rnd * 6 + 3, i)
- If EShip(i).Firing_Patt = 12369 And EShip(i).Span Mod 7 = 1 Then Call Check_Fire(Rnd * 6 + 10, i)
- End If
-
- If EShip(i).Patt = 86 Then 'Down Curve right
- If EShip(i).Span >= 20 And EShip(i).Span <= 39 Then EShip(i).Spd = 30
- If EShip(i).Span >= 70 And EShip(i).Span <= 99 Then EShip(i).Spd = 15
- If EShip(i).Span > 40 Then EShip(i).PosX = EShip(i).PosX + 30
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- If EShip(i).Span Mod 40 = 39 Then Call Check_Fire(EShip(i).Firing_Patt, i)
- End If
-
- If EShip(i).Patt = 84 Then 'Down Curve left
- If EShip(i).Span >= 20 And EShip(i).Span <= 39 Then EShip(i).Spd = 30
- If EShip(i).Span >= 70 And EShip(i).Span <= 99 Then EShip(i).Spd = 15
- If EShip(i).Span > 40 Then EShip(i).PosX = EShip(i).PosX - 30
- If EShip(i).Span Mod 40 = 39 Then Call Check_Fire(EShip(i).Firing_Patt, i)
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- End If
-
- If EShip(i).Patt = 821 Then 'Down then slow
- If EShip(i).Span >= 20 And EShip(i).Span <= 59 Then EShip(i).Spd = 40
- If EShip(i).Span >= 60 And EShip(i).Span <= 99 Then EShip(i).Spd = 20
- If EShip(i).Span >= 100 Then EShip(i).Spd = 10
- If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- End If
-
- If EShip(i).Patt = 83 Then 'Left Diagonal
- If EShip(i).Span >= 30 Then EShip(i).PosX = EShip(i).PosX + 35
- If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- End If
- If EShip(i).Patt = 81 Then 'Right Diagonal
- If EShip(i).Span >= 30 Then EShip(i).PosX = EShip(i).PosX - 35
- If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- End If
-
- If EShip(i).Patt = 31313 Then 'Meteor Jiggly
- EShip(i).PosX = EShip(i).PosX - 5
- EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- If EShip(i).Span Mod (Rnd * 40 + 1) = 1 Then EShip(i).Frame = EShip(i).Frame + 1
- If EShip(i).Frame > 4 Then EShip(i).Frame = 1
- End If
-
- If EShip(i).Patt = 3311 Then 'Meteor Boss
- Static M_Dir As Integer
- If EShip(i).Span < 25 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- If EShip(i).Span Mod 30 = 1 Then M_Dir = (Rnd * 2)
- If EShip(i).Span Mod 100 < 25 Then EShip(i).PosX = EShip(i).PosX - 75
- If EShip(i).Span Mod 100 > 50 And EShip(i).Span Mod 100 < 75 Then EShip(i).PosX = EShip(i).PosX + 75
- If EShip(i).Span Mod 100 < 25 Then Call Check_Fire(M_Dir + 17, i)
- If EShip(i).Span Mod 100 > 50 And EShip(i).Span Mod 100 < 75 Then Call Check_Fire(M_Dir + 17, i)
- If EShip(i).Span Mod 125 = 1 Then
- For x = 1 To 20
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next x
- End If
- End If
-
- If EShip(i).Patt = 2288 Then 'Mother Bubble
- If EShip(i).PosY < 1800 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
- If EShip(i).Span Mod 200 < 25 Then
- EShip(i).PosY = EShip(i).PosY + 60
- EShip(i).PosX = EShip(i).PosX - 60
- End If
- If EShip(i).Span Mod 200 > 50 And EShip(i).Span Mod 200 < 75 Then
- EShip(i).PosY = EShip(i).PosY + 60
- EShip(i).PosX = EShip(i).PosX + 60
- End If
- If EShip(i).Span Mod 200 > 100 And EShip(i).Span Mod 200 < 125 Then
- EShip(i).PosY = EShip(i).PosY - 60
- EShip(i).PosX = EShip(i).PosX + 60
- End If
- If EShip(i).Span Mod 200 > 150 And EShip(i).Span Mod 200 < 175 Then
- EShip(i).PosY = EShip(i).PosY - 60
- EShip(i).PosX = EShip(i).PosX - 60
- End If
- If EShip(i).Span > 25 And EShip(i).Span < 50 Then
- If EShip(i).Span Mod 5 = 0 Then
- For x = 0 To 7
- Call Check_Fire(x + 10, i)
- Next x
- End If
- End If
- If EShip(i).Span > 75 And EShip(i).Span < 100 Then
- Call Check_Fire(1, i)
- End If
- If EShip(i).Span > 125 And EShip(i).Span < 150 Then
- If EShip(i).Span Mod 5 = 0 Then
- For x = 0 To 7
- Call Check_Fire(x + 3, i)
- Next x
- End If
- End If
- If EShip(i).Span > 175 And EShip(i).Span < 200 Then
- Call Check_Fire(17, i)
- End If
- If EShip(i).Span = 200 Then EShip(i).Span = 0
- End If
-
- If EShip(i).Patt = 7979 Then 'Mother Scyth
- If EShip(i).PosY < 1500 Then EShip(i).PosY = EShip(i).PosY + 40
- If EShip(i).Span Mod 240 > 110 And EShip(i).Span Mod 240 < 120 Then EShip(i).PosX = EShip(i).PosX - EShip(i).Spd
- If EShip(i).Span Mod 240 > 230 And EShip(i).Span Mod 240 < 240 Then EShip(i).PosX = EShip(i).PosX + EShip(i).Spd
- If EShip(i).PosX < 900 Then EShip(i).PosX = 900
- If EShip(i).PosX > 2800 Then EShip(i).PosX = 2800
- If EShip(i).Span Mod 20 = 1 Then Call Check_Fire(1, i)
- If EShip(i).Span Mod 30 = 1 Then Call Check_Fire(2, i)
- If EShip(i).Span Mod 150 = 1 Then
- For x = 0 To 10
- Call Check_Fire(17, i)
- Next x
- End If
- If EShip(i).Span Mod 70 > 60 And EShip(i).Span Mod 70 < 70 Then
- Call Check_Fire(17, i)
- End If
- End If
- If EShip(i).Patt = 17931 Then 'BLACK DISC
- If EShip(i).PosY < 1500 Then EShip(i).PosY = EShip(i).PosY + 50
- If EShip(i).Span Mod 500 > 25 And EShip(i).Span Mod 500 < 100 Then EShip(i).PosX = EShip(i).PosX - 80
- If EShip(i).Span Mod 500 > 150 And EShip(i).Span Mod 500 < 250 Then EShip(i).PosY = EShip(i).PosY + 80
- If EShip(i).Span Mod 500 > 300 And EShip(i).Span Mod 500 < 400 Then EShip(i).PosX = EShip(i).PosX + 80
- If EShip(i).Span Mod 500 > 450 And EShip(i).Span Mod 500 < 550 Then EShip(i).PosY = EShip(i).PosY - 80
-
- If EShip(i).Span Mod 60 = 1 Then Call Check_Fire(2, i)
- If EShip(i).Span Mod 25 = 1 Then Call Check_Fire(1, i)
- If EShip(i).Span Mod 500 > 25 And EShip(i).Span Mod 500 < 60 Then
- If EShip(i).Span Mod 40 = 0 Then Call Check_Fire(19, i)
- End If
- If EShip(i).Span Mod 500 = 60 Or EShip(i).Span Mod 500 = 90 Or EShip(i).Span Mod 500 = 120 Then
- For x = 0 To 3
- Call Check_Fire(17, i)
- Next x
- End If
- If EShip(i).Span Mod 500 = 401 Or EShip(i).Span Mod 500 = 475 Or EShip(i).Span Mod 500 = 499 Then
- For x = 0 To 3
- Call Check_Fire(17, i)
- Next x
- End If
- If EShip(i).Span Mod 500 > 300 And EShip(i).Span Mod 500 < 400 And EShip(i).Span Mod 3 = 1 Then Call Check_Fire(1, i)
- If EShip(i).Span Mod 5 = 0 And EShip(i).Span Mod 500 > 150 And EShip(i).Span Mod 500 < 250 Then
- If EShip(i).Span Mod 20 = 0 Then Call Check_Fire(16, i)
- If EShip(i).Span Mod 25 = 0 Then Call Check_Fire(Rnd * 6 + 10, i)
- End If
- If EShip(i).Span Mod 200 = 199 Then Call Create_Enemy(21, 11, (Rnd * 3800 + 800), 0, 88, 30, 160, 180, 0, False, True)
- If EShip(i).Span Mod 200 = 199 Then
- For x = 1 To 20
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next x
- End If
- If EShip(i).Span Mod 5 = 0 And EShip(i).Span Mod 500 > 450 And EShip(i).Span Mod 500 < 550 Then
- If EShip(i).Span Mod 20 = 0 Then Call Check_Fire(9, i)
- If EShip(i).Span Mod 30 = 0 Then Call Check_Fire(Rnd * 6 + 3, i)
- End If
- If EShip(i).Span Mod 30 = 1 Then Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
-
- If EShip(i).PosX < 800 Then EShip(i).PosX = 800
- If EShip(i).PosY > 5325 Then EShip(i).PosY = 5325
- If EShip(i).PosX > 3705 Then EShip(i).PosX = 3705
- If EShip(i).Span > 100 Then
- If EShip(i).PosY < 1500 Then EShip(i).PosY = 1500
- End If
- End If
-
- 'Kill ships
- If EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) >= 8640 Or EShip(i).PosY < 0 Or EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) >= 6360 Or EShip(i).PosX <= 0 Then EShip(i).Used = False
-
- End If
- Next i
-
- For i = 1 To 40
- If EShip(i).Used = True Then
- Img(EShip(i).Kind).ListImages(EShip(i).Frame).Draw Play_Layer.hDC, EShip(i).PosX, EShip(i).PosY, 1
- End If
- Next i
-
- '-----------------------------------------
- 'MOVING E_BULLET
- 'Again, similar to player's bullet, but with
- 'less complexity
- For i = 0 To 200
- If EBull(i).Used = True Then
- If EBull(i).Dire = 1 Then
- Dim Bull_Distance As Double
- Dim Temp_Division As Integer
- Bull_Distance = (Abs(EBull(i).DestX - EBull(i).StartX)) + (Abs(EBull(i).DestY - EBull(i).StartY))
- Temp_Division = (Bull_Distance / 200)
- EBull(i).PosX = EBull(i).PosX + ((EBull(i).DestX - EBull(i).StartX) / (EBull(i).Spd + Abs(Temp_Division)))
- EBull(i).PosY = EBull(i).PosY + ((EBull(i).DestY - EBull(i).StartY) / (EBull(i).Spd + Abs(Temp_Division)))
- End If
- If EBull(i).Dire = 2 Then
- End If
-
- If EBull(i).PosX < 560 Or EBull(i).PosX > 5760 Or EBull(i).PosY < 1280 Or EBull(i).PosY > 8040 Then EBull(i).Used = False
-
- Select Case (EBull(i).Kind)
- Case 11:
- If (EBull(i).PosX - 75 < ShipX + (Img(0).ImageWidth * 15)) And (EBull(i).PosX + 75 > ShipX) And (EBull(i).PosY - 75 < ShipY + (Img(0).ImageHeight * 15)) And (EBull(i).PosY + 75 > ShipY) Then
- EBull(i).Used = False
- Call Minor_HIT
- End If
- Case 12:
- If (EBull(i).PosX - 75 < ShipX + (Img(0).ImageWidth * 15)) And (EBull(i).PosX + 75 > ShipX) And (EBull(i).PosY - 75 < ShipY + (Img(0).ImageHeight * 15)) And (EBull(i).PosY + 75 > ShipY) Then
- EBull(i).Used = False
- Call Minor_HIT
- End If
- Case 21:
- If (EBull(i).PosX - 150 < ShipX + (Img(0).ImageWidth * 15)) And (EBull(i).PosX + 150 > ShipX) And (EBull(i).PosY - 150 < ShipY + (Img(0).ImageHeight * 15)) And (EBull(i).PosY + 150 > ShipY) Then
- EBull(i).Used = False
- Call Minor_HIT
- End If
- Case 22:
- If (EBull(i).PosX - 150 < ShipX + (Img(0).ImageWidth * 15)) And (EBull(i).PosX + 150 > ShipX) And (EBull(i).PosY - 150 < ShipY + (Img(0).ImageHeight * 15)) And (EBull(i).PosY + 150 > ShipY) Then
- EBull(i).Used = False
- Call Minor_HIT
- End If
- End Select
-
- If SHP(2) = 1 Then 'For Matrix Globe
- For x = 290 To 300
- If Bull(x).Used = True Then
- 'To check the collision of the matrix globe with the enemy's bullets
- If EBull(i).Kind = 11 Or EBull(i).Kind = 12 Then
- If (EBull(i).PosX - 75 < Bull(x).PosX + (Img(5).ImageWidth * 15)) And (EBull(i).PosX + 75 > Bull(x).PosX) And (EBull(i).PosY - 75 < Bull(x).PosY + (Img(5).ImageHeight * 15)) And (EBull(i).PosY + 75 > Bull(x).PosY) Then EBull(i).Used = False
- Else:
- If (EBull(i).PosX - 150 < Bull(x).PosX + (Img(5).ImageWidth * 15)) And (EBull(i).PosX + 150 > Bull(x).PosX) And (EBull(i).PosY - 150 < Bull(x).PosY + (Img(5).ImageHeight * 15)) And (EBull(i).PosY + 150 > Bull(x).PosY) Then EBull(i).Used = False
- End If
- End If
- Next x
- End If
-
- 'similar to other sprites, enemy bullets are painted
- Select Case (EBull(i).Kind)
- Case 11:
- Img(15).ListImages(1).Draw Play_Layer.hDC, EBull(i).PosX - 75, EBull(i).PosY - 75, 1
- Case 12:
- Img(15).ListImages(2).Draw Play_Layer.hDC, EBull(i).PosX - 75, EBull(i).PosY - 75, 1
- Case 21:
- Img(16).ListImages(1).Draw Play_Layer.hDC, EBull(i).PosX - 150, EBull(i).PosY - 150, 1
- Case 22:
- Img(16).ListImages(2).Draw Play_Layer.hDC, EBull(i).PosX - 150, EBull(i).PosY - 150, 1
- End Select
- End If
- Next i
-
- '-----------------------------------------
- 'POWER-UP
- 'If a powerup is in play, it'll be animated ...
- For i = 0 To 2
- If PowerUp(i).Used = True Then
- PowerUp(i).PosY = PowerUp(i).PosY + 30
- If PowerUp(i).PosY > 7920 Then PowerUp(i).Used = False
- PowerUp(i).Frame = PowerUp(i).Frame + 1
- If PowerUp(i).Frame > 15 Then PowerUp(i).Frame = 1
- Img(26).ListImages(PowerUp(i).Frame).Draw Play_Layer.hDC, PowerUp(i).PosX, PowerUp(i).PosY, 1
- End If
- Next i
-
- '... and moved downwards to the screen bottom.
- For i = 0 To 2
- If PowerUp(i).Used = True Then
- If PowerUp(i).PosX + (Img(26).ImageWidth * 15) > ShipX And PowerUp(i).PosX < ShipX + (Img(0).ImageWidth * 15) And PowerUp(i).PosY + (Img(26).ImageHeight * 15) > ShipY And PowerUp(i).PosY < ShipY + (Img(0).ImageHeight * 15) Then
- Call Alter_G(GEC Mod 2, 1)
- Call PLAY(7)
- PowerUp(i).Used = False
- Exit For
- End If
- End If
- Next i
-
- '-----------------------------------------
- 'SHIELD CIRCLE
- 'If the player's ship is hit with an enemy bullet,
- 'there will be a brief flicker on the player's shield
- If GEC > 0 Then
- If SHIELD_ON_OFF >= 1 Then
- SHIELD_ON_OFF = SHIELD_ON_OFF + 1
- Select Case (SHIELD_ON_OFF)
- Case 2:
- Img(5).ListImages(1).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
- Case 4:
- Img(5).ListImages(2).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
- Case 6:
- Img(5).ListImages(3).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
- Case 8:
- Img(5).ListImages(4).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
- SHIELD_ON_OFF = 0
- End Select
- End If
- End If
-
-
- '-----------------------------------------
-
- 'MOVING SHIP
- If (Lock_Engine = False And Lock_All = False) Or (OVERIDE = True) Then
- If Ship_Moving(0) = True Then 'Move LEFT
- ShipX = ShipX - Ship_Speed
- If ShipX <= 720 Then
- ShipX = 720
- End If
- End If
- If Ship_Moving(1) = True Then 'Move UP
- ShipY = ShipY - Ship_Speed
- If ShipY <= 1440 Then
- ShipY = 1440
- End If
- End If
- If Ship_Moving(2) = True Then 'Move RIGHT
- ShipX = ShipX + Ship_Speed
- If ShipX >= 4920 Then
- ShipX = 4920
- End If
- End If
- If Ship_Moving(3) = True Then 'Move DOWN
- ShipY = ShipY + Ship_Speed
- If ShipY >= 6860 Then
- ShipY = 6860
- End If
- End If
- End If
- 'SHIP PAINTING
- Img(0).ListImages((FPS Mod 3) + 1).Draw Play_Layer.hDC, (ShipX), (ShipY), 1
-
- '-----------------------------------------
- 'MOVE STATSBAR UP DOWN
- If Moving_StatsBar = 1 Then
- Stats_Bar.Top = Stats_Bar.Top + 48
- Bufferbox(5).Top = Bufferbox(5).Top - 48
- If Stats_Bar.Top >= 7920 Then
- Stats_Bar.Top = 7920
- Bufferbox(5).Top = 1080
- Moving_StatsBar = 0
- Stats_Bar.Visible = False
- End If
- End If
-
- If Moving_StatsBar = 2 Then
- Stats_Bar.Visible = True
- Stats_Bar.Top = Stats_Bar.Top - 48
- Bufferbox(5).Top = Bufferbox(5).Top + 48
- If Stats_Bar.Top <= 7440 Then
- Stats_Bar.Top = 7440
- Bufferbox(5).Top = 1560
- Moving_StatsBar = 0
- End If
- End If
-
- If Moving_BossBar = 1 Then 'MOVE BOSSBAR UP DOWN
- BossBar.Top = BossBar.Top + 48
- If BossBar.Top >= 1560 Then
- BossBar.Top = 1560
- Moving_BossBar = 0
- End If
- End If
-
- If Moving_BossBar = 2 Then
- BossBar.Top = BossBar.Top - 48
- If BossBar.Top <= 1080 Then
- BossBar.Top = 1080
- Moving_BossBar = 0
- End If
- End If
-
- If Moving_SpecialBar = 1 Then 'MOVE SPECIALBAR UP DOWN
- Bufferbox(6).Top = Bufferbox(6).Top - 48
- If Bufferbox(6).Top <= 1080 Then
- Bufferbox(6).Top = 1080
- Moving_SpecialBar = 0
- End If
- End If
-
- If Moving_SpecialBar = 2 Then
- Bufferbox(6).Top = Bufferbox(6).Top + 48
- If Bufferbox(6).Top >= 1560 Then
- Bufferbox(6).Top = 1560
- Moving_SpecialBar = 0
- Special_Delay = 1
- End If
- End If
-
- If Special_Delay >= 1 Then Special_Delay = Special_Delay + 1
- If Special_Delay = 35 Then Moving_SpecialBar = 1
-
-
- '-----------------------------------------
- 'COLLISION DETECTION Bull > EShip
- 'These codes perform collision detection between
- 'the player's bullets with an enemy's ship.
- 'Since the bullet and ships above are painted,
- 'It will be calculated to see if any portion of
- 'them is overlapping each other, thus causing a hit.
- For i = 0 To 300
- If Bull(i).Used = True Then
- For x = 1 To 40
- If EShip(x).Used = True Then
- Dim Temp_Img As Integer
- Dim Img_SWidth As Integer
- Dim Img_SHeight As Integer
- Dim Bul_SWidth As Integer
- Dim Bul_SHeight As Integer
- Dim Img_EWidth As Integer
- Dim Img_EHeight As Integer
- Dim Bul_EWidth As Integer
- Dim Bul_EHeight As Integer
-
- If SHP(0) = 0 And i < 200 Then Temp_Img = 4
- If SHP(0) = 1 And i < 200 Then Temp_Img = 6
- If SHP(0) = 2 And i < 200 Then Temp_Img = 7
- If SHP(0) = 3 And i < 200 Then Temp_Img = 8
- If SHP(0) = 4 And i < 200 Then Temp_Img = 14
- If SHP(1) = 0 And i >= 200 And i < 290 Then Temp_Img = 9
- If SHP(1) = 1 And i >= 200 And i < 290 Then Temp_Img = 10
- If SHP(1) = 2 And i >= 200 And i < 290 Then Temp_Img = 11
- If SHP(1) = 3 And i >= 200 And i < 290 Then Temp_Img = 12
- If SHP(2) = 0 And i >= 290 Then Temp_Img = 17
- If SHP(2) = 1 And i >= 290 Then Temp_Img = 5
- If SHP(2) = 3 And i >= 290 Then Temp_Img = 3
-
- Bul_SHeight = Bull(i).PosY
- Bul_SWidth = Bull(i).PosX
- Img_SHeight = EShip(x).PosY
- Img_SWidth = EShip(x).PosX
-
- Bul_EHeight = Bull(i).PosY + Img(Temp_Img).ImageHeight * 15
- Bul_EWidth = Bull(i).PosX + Img(Temp_Img).ImageWidth * 15
- Img_EHeight = EShip(x).PosY + Img(EShip(x).Kind).ImageHeight * 15
- Img_EWidth = EShip(x).PosX + Img(EShip(x).Kind).ImageWidth * 15
-
- 'Correctly adjust the detection width of weapon if using light beam
- If SHP(0) = 1 And i < 200 Then 'All Level Light Beam
- Bul_SWidth = Bul_SWidth + (10 - MG_Lvl) * 10
- Bul_EWidth = Bul_EWidth - (10 - MG_Lvl) * 10
- End If
-
- 'The following 10 portions are to correctly detection the
- 'plasma wave weapon based on its varied hegiht and width
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 1 Then 'Wave 1
- Bul_SWidth = Bul_SWidth + 48
- Bul_EWidth = Bul_EWidth - 48
- Bul_SHeight = Bul_SHeight + 17
- Bul_EHeight = Bul_EHeight - 35
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 2 Then 'Wave 2
- Bul_SWidth = Bul_SWidth + 43
- Bul_EWidth = Bul_EWidth - 43
- Bul_SHeight = Bul_SHeight + 14
- Bul_EHeight = Bul_EHeight - 35
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 3 Then 'Wave 3
- Bul_SWidth = Bul_SWidth + 32
- Bul_EWidth = Bul_EWidth - 32
- Bul_SHeight = Bul_SHeight + 14
- Bul_EHeight = Bul_EHeight - 35
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 4 Then 'Wave 4
- Bul_SWidth = Bul_SWidth + 26
- Bul_EWidth = Bul_EWidth - 26
- Bul_SHeight = Bul_SHeight + 14
- Bul_EHeight = Bul_EHeight - 35
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 5 Then 'Wave 5
- Bul_SWidth = Bul_SWidth + 26
- Bul_EWidth = Bul_EWidth - 26
- Bul_SHeight = Bul_SHeight + 14
- Bul_EHeight = Bul_EHeight - 21
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 6 Then 'Wave 6
- Bul_SWidth = Bul_SWidth + 21
- Bul_EWidth = Bul_EWidth - 21
- Bul_SHeight = Bul_SHeight + 14
- Bul_EHeight = Bul_EHeight - 21
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 7 Then 'Wave 7
- Bul_SWidth = Bul_SWidth + 14
- Bul_EWidth = Bul_EWidth - 14
- Bul_SHeight = Bul_SHeight + 9
- Bul_EHeight = Bul_EHeight - 21
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 8 Then 'Wave 8
- Bul_SWidth = Bul_SWidth + 10
- Bul_EWidth = Bul_EWidth - 10
- Bul_SHeight = Bul_SHeight + 9
- Bul_EHeight = Bul_EHeight - 16
- End If
- If SHP(0) = 3 And i < 200 And MG_Lvl >= 9 Then 'Wave 9
- Bul_SWidth = Bul_SWidth + 7
- Bul_EWidth = Bul_EWidth - 7
- Bul_SHeight = Bul_SHeight + 6
- Bul_EHeight = Bul_EHeight - 10
- End If
-
- 'If bullet overlaps enemy's ship ...
- If Bul_SWidth < Img_EWidth And Bul_EWidth > Img_SWidth And Bul_SHeight < Img_EHeight And Bul_EHeight > Img_SHeight Then
- 'Reduce their hit points by bullet's damage
- EShip(x).Life = EShip(x).Life - Bull(i).Dama
-
- 'For bosses ...
- If EShip(x).Boss = True Then
- ' ... they cannot have life less than zero because ...
- If EShip(x).Life < 0 Then EShip(x).Life = 0
- ' ... width of their lifebar cannot be < 0.
- Boss_Bar_Top.Width = EShip(x).Life / EShip(x).Max_Life * Boss_Bar_Bottom.Width
- End If
-
- 'Generate a small ricochet explosion on the enemy aircraft
- Call EXPLODE(EShip(x).PosX + (Rnd * Img(EShip(x).Kind).ImageWidth * 15), EShip(x).PosY + (Rnd * Img(EShip(x).Kind).ImageHeight * 15), 13)
-
- 'Check for their life points if it is below 0
- Call Check_EDeath(x)
-
- 'For plasma wave and matrix globe, the bullet remains after hitting enemy
- If (SHP(0) = 3 And i < 200) Or (SHP(2) = 0 And i >= 290) Or (SHP(2) = 1 And i >= 290) Or (SHP(2) = 3 And i >= 290) Then
- Bull(i).Used = True
- Else:
- 'All other bullets will be removed (unused)
- Bull(i).Used = False
- End If
- End If
- End If
- Next x
- End If
- Next i
-
- '-----------------------------------------
- 'COLLISION DETECTION SHIP VS SHIP
- 'Similar to bullets with eship, this time, detection is
- 'between the player's ship and the enemy's ship
- For i = 0 To 40
- If EShip(i).Used = True Then
- 'Collision detection
- If EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2 > ShipX And EShip(i).PosX < ShipX + (Img(0).ImageWidth * 15) / 2 And EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2 > ShipY And EShip(i).PosY < ShipY + (Img(0).ImageHeight * 15) / 2 Then
- 'If collide, enemy deduct 150 life points
- EShip(i).Life = EShip(i).Life - 150
- 'Player loses 1 shield
- Call Minor_HIT
- 'Checks for enemy's lifepoints
- Call Check_EDeath(i)
- End If
- End If
- Next i
-
- '-----------------------------------------
- 'ANIMATE EXPLOSION
- 'This sub paints the explosion picture, if any of it is in play.
- 'It will keep track of their frames and slowly
- 'increment it one by one. after all of its frame
- ' has been displayed, the explosion object will be
- ' removed (unused)
- For i = 0 To 40
- If Explo(i).Used = True Then
- If Explo(i).PosX < 0 Then Explo(i).PosX = 0
- If Explo(i).PosY < 0 Then Explo(i).PosY = 0
- Img(Explo(i).Kind).ListImages(Explo(i).Current_Frame).Draw Play_Layer.hDC, Explo(i).PosX, Explo(i).PosY, 1
- Explo(i).Current_Frame = Explo(i).Current_Frame + 1
- If Explo(i).Current_Frame >= Explo(i).Last_Frame Then
- Explo(i).Used = False
- End If
- End If
- Next i
-
- '-----------------------------------------
- 'SHAKEIT EFFECT
- 'When a player gets a major hit, the screen
- 'will shake and flash white. These codes does that.
-
- If ShakeIT = 3 Then
- Play_Layer.BackColor = &H0& 'Changes backcolor to BLACK
- Stats_Bar.Top = 7440
- ShakeIT = 0
- End If
-
- If ShakeIT >= 1 And ShakeIT <= 2 Then
- Play_Layer.BackColor = &HFFFFFF 'Change to WHITE
- Stats_Bar.Top = Stats_Bar.Top - 480 'SHAKE status bar
- ShakeIT = ShakeIT + 1
- End If
-
- If Giga_Count >= 1 Then 'This is for giga storm only ...
- Giga_Count = Giga_Count + 1
- 'Shows the lightning image
- Img(27).ListImages(1).Draw Play_Layer.hDC, 1000, 2000, 1
- Img(27).ListImages(1).Draw Play_Layer.hDC, 3000, 2000, 1
- If Giga_Count > 5 Then Giga_Count = 0
- End If
- '-----------------------------------------
- 'REPAIRS
- 'If any component of the ship is damaged,
- 'repairs will be perform.
- If GEC > 0 Then
- 'Repair main gun if damaged
- If Lock_MainGun = True Then
- 'Slowly increase the repaired bar
- Stt_MGUN_R.Width = Stt_MGUN_R.Width + Repair_Speed
- 'If repairs completed
- If Stt_MGUN_R.Width >= 615 Then
- Stt_MGUN_R.Width = 615
- Lock_MainGun = False
- Call Send_MSG("MainGun Repaired", 3, 0)
- End If
- End If
-
- 'Repair side gun if damaged
- If Lock_SideGun = True Then
- Stt_SGUN_R.Width = Stt_SGUN_R.Width + Repair_Speed
- If Stt_SGUN_R.Width >= 615 Then
- Stt_SGUN_R.Width = 615
- Lock_SideGun = False
- Call Send_MSG("SideGun Repaired", 3, 0)
- End If
- End If
-
- 'Repair engine if damaged
- If Lock_Engine = True Then
- Stt_ENG_R.Width = Stt_ENG_R.Width + Repair_Speed
- If Stt_ENG_R.Width >= 615 Then
- Stt_ENG_R.Width = 615
- Lock_Engine = False
- Call Send_MSG("Engines Repaired", 3, 0)
- End If
- End If
-
- 'Repair generator if damaged
- If Lock_Generator = True Then
- Stt_PWR_R.Width = Stt_PWR_R.Width + Repair_Speed
- If Stt_PWR_R.Width >= 615 Then
- Stt_PWR_R.Width = 615
- Lock_Generator = False
- Call Send_MSG("Generator Repaired", 3, 0)
- End If
- End If
- End If
-
- '-----------------------------------------
- 'BUFFER LINES
- 'This portion moves the on-screen msg sent to the
- 'player and slowly scroll it downwards
- Buffering = False
- 'If there's any text on screen, text scrolling is performed
- For i = 0 To 4
- If BufferText(i).Caption <> "" Then
- Buffering = True
- End If
- Next i
-
- 'If the delay count of the lines moving matches
- 'the delay speed set, the text is moved.
- 'Note that there is a slight pause after the
- 'lines have been moved, line after line...
- If Buffering = True Then
- Buffer_Count = Buffer_Count + 1
- If Buffer_Count = Buff_Speed Then
- Buffer_Count = 0
- Buffer_Mover = True
- End If
-
- 'If moving is true (not during the slight pause)
- If Buffer_Mover = True Then
- If Buffer_Count Mod 2 = 0 Then
- 'Always remove the last line of text
- Bufferbox(4).Width = 15
- For i = 1 To 3
- 'From top line to bottom line, move the text downwards
- Bufferbox(i).Top = Bufferbox(i).Top + 72
- 'If the last line reaches the bottom line...
- If Bufferbox(3).Top >= 3960 Then
- 'All the text will inherit its attributes
- 'to their previous line, thus original
- 'attributes of the last line is lost.
- 'Attributes: Forecolor, Backcolor, Text
- For x = 4 To 1 Step -1
- BufferText(x).Caption = BufferText(x - 1).Caption
- BufferText(x).ForeColor = BufferText(x - 1).ForeColor
- Bufferbox(x).Width = Bufferbox(x - 1).Width
- BufferText(x).BackColor = BufferText(x - 1).BackColor
- Next x
- 'All the text line will take over the previous
- 'line's position, thus making it seem like there's
- 'continous shift of line, no sudden jump.
- For x = 1 To 3
- Bufferbox(x).Top = Bufferbox(x).Top - 360
- Next x
- Buffer_Mover = False
- Bufferbox(0).Width = 15
- BufferText(0).Caption = ""
- BufferText(0).BackColor = &H0&
- End If
- Next i
- End If
- End If
- End If
- '-----------------------------------------
-
- 'These codes Charges the shield bar and special bar
- 'of the player's ship.
- Const n = 2 'Bonus
- Select Case (SHP(4)) 'CHARGE SPEED (GENERATOR)
- Case 0: 'DUAL CORE
- If SHD_Charging = True And SPE_Charging = True Then
- SHD_Charge_Speed = SHD_Charge_Base + n
- SPE_Charge_Speed = n
- End If
- If SHD_Charging = True And SPE_Charging = False Then
- SHD_Charge_Speed = SHD_Charge_Base + n * 2
- End If
- If SHD_Charging = False And SPE_Charging = True Then
- SPE_Charge_Speed = n * 2
- End If
- Case 1: 'FUSION
- If SHD_Charging = True And SPE_Charging = True Then
- SHD_Charge_Speed = 0
- SPE_Charge_Speed = n * 3
- End If
- If SHD_Charging = True And SPE_Charging = False Then
- SHD_Charge_Speed = SHD_Charge_Base + n
- End If
- If SHD_Charging = False And SPE_Charging = True Then
- SPE_Charge_Speed = n * 8
- End If
- Case 2: 'MATRIX
- If SHD_Charging = True And SPE_Charging = True Then
- SHD_Charge_Speed = (SHD_Charge_Base + 4) * 3
- SPE_Charge_Speed = 0
- End If
- If SHD_Charging = True And SPE_Charging = False Then
- SHD_Charge_Speed = (SHD_Charge_Base + n) * 3
- End If
- If SHD_Charging = False And SPE_Charging = True Then
- SPE_Charge_Speed = n
- End If
-
- End Select
-
- '-----------------------------------------
- 'CHARGE SHIELD
- 'If the player's shield is not full,
- 'its bar will charge
- If SHD_Charging = True And Lock_Generator = False Then
- BAR_SHD_R.Width = BAR_SHD_R.Width + SHD_Charge_Speed
- If BAR_SHD_R.Width >= SHD_Width Then
- SHD_Charging = False
- SHD_Avail = True
- BAR_SHD_C.Width = SHD_Width
- BAR_SHD_R.Width = SHD_Width
- Stt_SHD_Lbl.BackColor = &H0&
- Stt_SHD_Lbl.ForeColor = &HFF00&
- End If
- End If
- '-----------------------------------------
- 'CHARGE SPECIAL
- 'If the player's special bar is not full,
- 'it will charge
- If SPE_Charging = True And Lock_Generator = False Then
- BAR_SPE_R.Width = BAR_SPE_R.Width + SPE_Charge_Speed
- If BAR_SPE_R.Width >= SPE_Width Then
- SPE_Charging = False
- SPE_Avail = True
- BAR_SPE_C.Width = SPE_Width
- BAR_SPE_R.Width = SPE_Width
- Stt_SPE_Lbl.BackColor = &H0&
- Stt_SPE_Lbl.ForeColor = &HFF00&
- End If
- End If
-
-
- '-----------------------------------------
- End If
-
- Call GEC_Coding 'Create enemies at specified time (see below)
-
- For i = 200 To 290 'Remove Pulse Ring!
- If SHP(1) = 1 And i >= 200 And i < 290 Then Bull(i).Used = False
- Next i
- End Sub
- Private Sub GEC_Coding()
- Dim i As Integer
- '-----------------------------------------
- ' GEC CODING
- ' GEC CODING
- ' GEC CODING
- '-----------------------------------------
- 'Ships : 18 Big Ufo
- ' 19 Ferry
- ' 20 Grey Fat Ship
- ' 21 Bubble Yellow
- ' 22 Army Fighter
- ' 23 Meteor Boss
- ' 24 Big Scyth
- ' 25 Small Scyth
- ' 28 Small Meteors
- ' 29 Medium Meteors
- ' 30 Big Meteors
- ' 31 Mother Bubble
- '-FOR TESTING ONLY-
- 'Uncomment lines below until the ----- only for
- 'testing purposes.
- 'The first line skips the intro and let the player jumo directly into play.
- 'The following line each will allow the player to
- 'skip a single stage.
- '-Start uncomment below this line-
- 'If GEC = 1 Then GEC = 150
- 'If GEC = 151 Then
- ' GEC = (2700 + 60) 'Modify the 2nd number in the bracket ONLY!
- ' C_GEC(0) = 1250
- ' C_GEC(1) = 2500
- ' C_GEC(2) = 2600
- ' C_GEC(3) = 2700
- 'End If
- '------------
- Select Case (GEC)
- Case 1:
- Lock_All = True
- ShipX = 2800
- ShipY = 8000
- Case 20:
- Call Send_MSG(" ALERT ! APPROACHING ENEMY BASE ! ", 0, 1)
- OVERIDE = True
- Ship_Moving(1) = True
- Call PLAY(5)
- Case 45:
- Ship_Moving(1) = False
- Case 90:
- Call Send_MSG("> Command Base: Good Luck, Black Winter! ", 0, 0)
- Case 110:
- Call PLAY(6)
- Case 150:
- Stats_Bar.Visible = True
- Moving_StatsBar = 2
- Lock_All = False
- OVERIDE = False
- Call PLAY(4)
- Case 170:
- Call Send_MSG(" Stage 1: The Breach ", 0, 0)
- Call Create_Enemy(25, 11, 1760, 0, 88, 50, 40, 50, 1, False, False)
- Case 180:
- Call Create_Enemy(25, 11, 2760, 0, 88, 50, 40, 50, 1, False, False)
- Case 190:
- Call Create_Enemy(25, 11, 3760, 0, 88, 50, 40, 50, 1, False, False)
- Case 270:
- Call Create_Enemy(25, 11, 3760, 0, 88, 50, 40, 50, 1, False, False)
- Case 280:
- Call Create_Enemy(25, 11, 2760, 0, 88, 50, 40, 50, 1, False, False)
- Case 290:
- Call Create_Enemy(25, 11, 1760, 0, 88, 50, 40, 50, 1, False, False)
- Case 370:
- Call Create_Enemy(25, 11, 2260, 0, 88, 50, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 4260, 0, 88, 50, 40, 50, 1, False, False)
- Case 390:
- Call Create_Enemy(25, 11, 1260, 0, 88, 50, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 3260, 0, 88, 50, 40, 50, 1, False, False)
- Case 500:
- Call Create_Enemy(21, 11, 4660, 0, 88, 25, 100, 150, 0, False, True)
- Call Create_Enemy(25, 11, 1360, 0, 86, 40, 50, 50, 1, False, False)
- Case 530:
- Call Create_Enemy(25, 11, 1560, 0, 86, 40, 50, 50, 1, False, False)
- Case 560:
- Call Create_Enemy(25, 11, 1760, 0, 86, 40, 50, 50, 1, False, False)
- Case 600:
- Call Create_Enemy(21, 11, 1660, 0, 88, 25, 100, 150, 0, False, True)
- Case 610:
- Call Create_Enemy(22, 11, 2760, 0, 88, 35, 100, 100, 1, False, False)
- Call Create_Enemy(22, 11, 3760, 0, 88, 35, 100, 100, 1, False, False)
- Case 700:
- Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 2, False, False)
- Case 730:
- Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 3, False, False)
- Case 760:
- Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 4, False, False)
- Case 860:
- Call Create_Enemy(25, 11, 2060, 0, 88, 30, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 4060, 0, 88, 30, 40, 50, 1, False, False)
- Case 880:
- Call Create_Enemy(25, 11, 1060, 0, 88, 30, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 5060, 0, 88, 30, 40, 50, 1, False, False)
- Case 900:
- Call Create_Enemy(21, 11, 3060, 0, 88, 35, 100, 150, 0, False, True)
- Case 980:
- Call Create_Enemy(22, 11, 1760, 0, 88, 35, 100, 100, 6, False, False)
- Case 1010:
- Call Create_Enemy(22, 11, 4760, 0, 88, 35, 100, 100, 6, False, False)
- Case 1040:
- Call Create_Enemy(22, 11, 4760, 0, 88, 35, 100, 100, 6, False, False)
- Case 1100:
- Call Create_Enemy(22, 11, 5060, 0, 81, 35, 100, 100, 1, False, False)
- Case 1130:
- Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
- Case 1160:
- Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
- Case 1130:
- Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
- Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
- Case 1150:
- Call Create_Enemy(21, 11, 4860, 0, 88, 35, 100, 150, 0, False, True)
- Case 1170:
- Call Send_MSG(" INCOMING ENEMY ", 0, 1)
- Case 1250:
- Boss_Name.Caption = "TRANSPORT"
- Call Create_Enemy(19, 11, 2400, 0, 4646, 40, 1500, 400, 123, True, False)
- Case Else:
- If C_GEC(0) > 1 And C_GEC(1) = 0 And C_GEC(2) = 0 And C_GEC(3) = 0 And C_GEC(4) = 0 Then
- Select Case (GEC - C_GEC(0))
- Case 50:
- Call Send_MSG(" Stage 2: Space Debris ", 0, 0)
- Call Create_Enemy(25, 11, 1200, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 1700, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 2200, 0, 821, 100, 60, 75, 2, False, False)
- Case 80:
- Call Create_Enemy(25, 11, 2200, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 2700, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 3200, 0, 821, 100, 60, 75, 2, False, False)
- Case 110:
- Call Create_Enemy(25, 11, 3200, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 3700, 0, 821, 100, 60, 75, 2, False, False)
- Call Create_Enemy(25, 11, 4200, 0, 821, 100, 60, 75, 2, False, False)
- Case 120:
- Call Create_Enemy(21, 11, 4700, 0, 88, 35, 120, 150, 0, False, True)
- Case 140:
- Call Create_Enemy(22, 11, 1860, 0, 88, 45, 120, 120, 1, False, False)
- Case 150:
- Call Create_Enemy(22, 11, 2660, 0, 88, 45, 120, 120, 1, False, False)
- Case 180:
- Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
- Case 190:
- Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
- Case 200:
- Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
- Case 230:
- 'Scyth
- Call Create_Enemy(25, 11, 900, 0, 821, 100, 60, 75, 1, False, False)
- Call Create_Enemy(25, 11, 1500, 0, 821, 100, 60, 75, 1, False, False)
- Case 270:
- 'Yellow Bubble
- Call Create_Enemy(21, 11, 1500, 0, 88, 30, 120, 150, 0, False, True)
- Case 280:
- 'Fat Grey Ship
- Call Create_Enemy(20, 12, 4000, 0, 88, 30, 230, 150, 32147, False, False)
- Case 300:
- Call Create_Enemy(20, 12, 4600, 0, 88, 30, 230, 150, 32147, False, False)
- Case 370:
- Call Send_MSG(" ALERT! ASTEROID BELT AHEAD! ", 0, 1)
- Case 420:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
- Next i
- Case 470:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
- Next i
- Case 520:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
- Next i
- Case 570:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
- Next i
- Case 620:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
- Next i
- Case 670:
- For i = 1 To 5
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
- Next i
- Case 720:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 40, Rnd * 20 + 20, 15, 0, False, False)
- Next i
- Case 770:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 40, Rnd * 20 + 20, 15, 0, False, False)
- Next i
- Case 780:
- Call Send_MSG("> Command Base: It's going to get rough! ", 0, 0)
- Case 820:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
- Next i
- Case 860:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
- Next i
- Case 900:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
- Next i
- Case 940:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 980:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1020:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1150:
- Call Send_MSG("> Command Base: HailStorm!! ", 0, 0)
- Case 1170:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1190:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1210:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1220:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1230:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1240:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1250:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1260:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1270:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1280:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1290:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1300:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1310:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1320:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1330:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1340:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1350:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1360:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1370:
- For i = 1 To 10
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
- Next i
- Case 1420:
- Boss_Name.Caption = "GRANITE"
- Call Create_Enemy(23, 11, 3050, 0, 3311, 80, 4500, 1700, 999, True, False)
- End Select
- End If
-
- If C_GEC(1) > 1 And C_GEC(2) = 0 And C_GEC(3) = 0 And C_GEC(4) = 0 Then
- Select Case (GEC - C_GEC(1))
- Case 60:
- Call Send_MSG(" Stage 3: The Big Gift ", 0, 0)
- 'Yellow Bubble
- Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(21, 11, 3500, 0, 88, 30, 160, 180, 0, False, True)
- Case 80:
- 'Army Type
- Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
- Case 100:
- Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
- Case 120:
- Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
- Case 140:
- Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
- Case 160:
- Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
- Case 180:
- Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
- Case 210:
- 'Fat Grey Ship
- Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 240:
- Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
- Case 250:
- Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
- Case 260:
- Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
- Case 270:
- Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
- Case 280:
- Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
- Case 290:
- Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
- Case 340:
- Call Create_Enemy(21, 11, 900, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(21, 11, 4900, 0, 88, 30, 160, 180, 0, False, True)
- Case 360:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 390:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 420:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 450:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 480:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 510:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 540:
- Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
- Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
- Case 610:
- Call Create_Enemy(21, 11, 4500, 0, 88, 50, 160, 180, 0, False, True)
- Case 630:
- Call Create_Enemy(21, 11, 4500, 0, 88, 50, 160, 180, 0, False, True)
- Case 660:
- Call Create_Enemy(22, 11, 800, 0, 821, 9, 200, 160, 2, False, False)
- Case 680:
- Call Create_Enemy(22, 11, 1600, 0, 821, 9, 200, 160, 2, False, False)
- Case 700:
- Call Create_Enemy(22, 11, 2400, 0, 821, 9, 200, 160, 2, False, False)
- Case 720:
- Call Create_Enemy(22, 11, 3200, 0, 821, 9, 200, 160, 2, False, False)
- Case 740:
- Call Create_Enemy(22, 11, 4000, 0, 821, 9, 200, 160, 2, False, False)
- Case 760:
- Call Create_Enemy(22, 11, 4800, 0, 821, 9, 200, 160, 2, False, False)
- Case 780:
- Call Send_MSG("> Command Base: We've got Weird readings ahead ... ", 0, 0)
- Case 800:
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 860:
- Call Send_MSG(" INCOMING ENEMY ", 0, 1)
- Case 900:
- Call Create_Enemy(21, 11, 9000, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(21, 11, 4700, 0, 88, 30, 160, 180, 0, False, True)
- Case 950: 'Mother bubble
- Boss_Name.Caption = "GIANT POD"
- Call Create_Enemy(31, 21, 2550, 0, 2288, 100, 7500, 3000, 12321, True, True)
- End Select
- End If
-
- If C_GEC(2) > 1 And C_GEC(3) = 0 And C_GEC(4) = 0 Then
- Select Case (GEC - C_GEC(2))
- Case 20:
- Call Send_MSG(" Stage 4: Barricade of Doom ", 0, 0)
- Call Create_Enemy(21, 11, 900, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(21, 11, 1800, 0, 88, 30, 160, 180, 0, False, True)
- Case 100:
- 'Scyth Squadron
- Call Send_MSG("> Command base: Scyth Squadron coming ahead ! ", 0, 0)
- Call Create_Enemy(25, 11, 900, 0, 88, 90, 90, 60, 1, False, False)
- Case 105:
- Call Create_Enemy(25, 11, 1400, 0, 88, 90, 90, 60, 1, False, False)
- Case 110:
- Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
- Case 115:
- Call Create_Enemy(25, 11, 4000, 0, 88, 90, 90, 60, 1, False, False)
- Case 120:
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
- Case 125:
- Call Create_Enemy(25, 11, 3900, 0, 88, 90, 90, 60, 1, False, False)
- Case 130:
- Call Create_Enemy(25, 11, 2600, 0, 88, 90, 90, 60, 1, False, False)
- Case 135:
- Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
- Case 140:
- Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
- Case 145:
- Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
- Case 150:
- Call Create_Enemy(25, 11, 2600, 0, 88, 90, 90, 60, 1, False, False)
- Case 155:
- Call Create_Enemy(25, 11, 3500, 0, 88, 90, 90, 60, 1, False, False)
- Case 160:
- Call Create_Enemy(25, 11, 1600, 0, 88, 90, 90, 60, 1, False, False)
- Case 165:
- Call Create_Enemy(25, 11, 2900, 0, 88, 90, 90, 60, 1, False, False)
- Case 170:
- Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
- Case 175:
- Call Create_Enemy(25, 11, 4000, 0, 88, 90, 90, 60, 1, False, False)
- Case 180:
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
- Case 185:
- Call Create_Enemy(25, 11, 2000, 0, 88, 90, 90, 60, 1, False, False)
- Case 190:
- Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
- Case 195:
- Call Create_Enemy(25, 11, 3500, 0, 88, 90, 90, 60, 1, False, False)
- Case 200:
- Call Create_Enemy(25, 11, 2300, 0, 88, 90, 90, 60, 1, False, False)
- Case 205:
- Call Create_Enemy(25, 11, 3300, 0, 88, 90, 90, 60, 1, False, False)
- Case 225:
- Call Create_Enemy(21, 11, 4800, 0, 88, 30, 160, 180, 0, False, True)
- Case 250:
- Call Send_MSG("> Command base: More Scyths Detected ! ", 0, 0)
- Case 305:
- Call Create_Enemy(25, 11, 1200, 0, 88, 90, 90, 60, 1, False, False)
- Case 310:
- Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
- Case 315:
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
- Case 320:
- Call Create_Enemy(25, 11, 2000, 0, 88, 90, 90, 60, 1, False, False)
- Case 325:
- Call Create_Enemy(25, 11, 2900, 0, 88, 90, 90, 60, 1, False, False)
- Case 330:
- Call Create_Enemy(25, 11, 3600, 0, 88, 90, 90, 60, 1, False, False)
- Case 335:
- Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
- Case 340:
- Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
- Case 345:
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
- Case 350:
- Call Create_Enemy(25, 11, 3900, 0, 88, 90, 90, 60, 1, False, False)
- Case 355:
- Call Create_Enemy(25, 11, 2200, 0, 88, 90, 90, 60, 1, False, False)
- Case 360:
- Call Create_Enemy(25, 11, 4400, 0, 88, 90, 90, 60, 1, False, False)
- Case 365:
- Call Create_Enemy(25, 11, 3300, 0, 88, 90, 90, 60, 1, False, False)
- Case 370:
- Call Create_Enemy(25, 11, 1100, 0, 88, 90, 90, 60, 1, False, False)
- Case 375:
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
- Case 380:
- Call Create_Enemy(25, 11, 2700, 0, 88, 90, 90, 60, 1, False, False)
- Case 385:
- Call Create_Enemy(25, 11, 800, 0, 88, 90, 90, 60, 1, False, False)
- Case 390:
- Call Create_Enemy(25, 11, 3800, 0, 88, 90, 90, 60, 1, False, False)
- Case 395:
- Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
- Case 410:
- Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
- Case 410:
- Call Create_Enemy(25, 11, 2100, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2400, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2700, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3300, 0, 88, 90, 120, 80, 1, False, False)
- Case 450:
- Call Create_Enemy(25, 11, 1500, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1800, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2100, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2400, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2700, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3000, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3300, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3900, 0, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4200, 0, 88, 90, 120, 80, 1, False, False)
- Case 480:
- Call Create_Enemy(21, 11, 2500, 0, 88, 30, 160, 180, 0, False, True)
- Case 510:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 520:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 530:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 540:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 550:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 560:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 570:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 580:
- Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
- Case 740:
- Call Create_Enemy(19, 21, 1600, 100, 555, 30, 800, 600, 123, False, False)
- Case 880:
- Call Create_Enemy(19, 21, 3100, 100, 555, 30, 800, 600, 123, False, False)
- Case 1000:
- Call Send_MSG("> Command Base: Barricade ahead ! ", 0, 0)
- Case 1080:
- Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
- Case 1160:
- Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
- Case 1220:
- Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
- Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
- Case 1260:
- Call Create_Enemy(21, 11, 1000, 0, 88, 30, 160, 180, 0, False, True)
- Call Send_MSG(" INCOMING ENEMY ", 0, 1)
- Case 1330: 'Mother Scyth
- Boss_Name.Caption = "SCYTH LORD"
- Call Create_Enemy(24, 22, 2000, 0, 7979, 250, 12500, 4500, 3333, True, False)
- End Select
- End If
-
- If C_GEC(3) > 1 And C_GEC(4) = 0 Then
- Select Case (GEC - C_GEC(3))
- Case 60:
- Call Send_MSG(" Final Stage: The Chaotic End ", 0, 0)
- Case 130:
- Call Send_MSG(" > Command Base: Becareful, Black Winter ", 0, 0)
- Case 160:
- 'ARMY TYPE
- Call Create_Enemy(22, 11, 1300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 170:
- Call Create_Enemy(22, 11, 1200, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 180:
- Call Create_Enemy(22, 11, 1100, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 190:
- Call Create_Enemy(22, 11, 1000, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 200:
- Call Create_Enemy(22, 11, 900, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 250:
- 'Fat Grey Ship
- Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 320:
- 'Fat Grey Ship
- Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 390:
- Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2000, 800, 123, False, False)
- Case 440:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 470:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 490:
- 'Fat Grey Ship
- Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 520:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 530:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 540:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 570:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Case 580:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Case 590:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
- Case 600:
- Call Create_Enemy(25, 11, 1000, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 5000, 0, 88, 80, 140, 90, 2, False, False)
- Case 610:
- Call Create_Enemy(25, 11, 1200, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4800, 0, 88, 80, 140, 90, 2, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 615:
- Call Create_Enemy(25, 11, 1300, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4700, 0, 88, 80, 140, 90, 2, False, False)
- Case 620:
- Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(25, 11, 1400, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4600, 0, 88, 80, 140, 90, 2, False, False)
- Case 630:
- Call Create_Enemy(25, 11, 1500, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4500, 0, 88, 80, 140, 90, 2, False, False)
- Case 640:
- Call Create_Enemy(25, 11, 1600, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4400, 0, 88, 80, 140, 90, 2, False, False)
- Case 650:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Call Create_Enemy(25, 11, 1700, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4300, 0, 88, 80, 140, 90, 2, False, False)
- Case 660:
- Call Create_Enemy(25, 11, 1800, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4200, 0, 88, 80, 140, 90, 2, False, False)
- Case 670:
- Call Create_Enemy(25, 11, 1900, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4100, 0, 88, 80, 140, 90, 2, False, False)
- Case 680:
- Call Create_Enemy(25, 11, 2000, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 4000, 0, 88, 80, 140, 90, 2, False, False)
- Case 690:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Call Create_Enemy(25, 11, 2100, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3900, 0, 88, 80, 140, 90, 2, False, False)
- Case 700:
- Call Create_Enemy(25, 11, 2200, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3800, 0, 88, 80, 140, 90, 2, False, False)
- Case 710:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Call Create_Enemy(25, 11, 2300, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3700, 0, 88, 80, 140, 90, 2, False, False)
- Case 720:
- Call Create_Enemy(25, 11, 2400, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- Case 730:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Call Create_Enemy(25, 11, 2500, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3500, 0, 88, 80, 140, 90, 2, False, False)
- Case 740:
- Call Create_Enemy(25, 11, 2600, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3400, 0, 88, 80, 140, 90, 2, False, False)
- Case 750:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Call Create_Enemy(25, 11, 2700, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 2900, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3100, 0, 88, 80, 140, 90, 2, False, False)
- Call Create_Enemy(25, 11, 3300, 0, 88, 80, 140, 90, 2, False, False)
- Case 770:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 775:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 780:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 785:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 810:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 815:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 820:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 825:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 830:
- Call Create_Enemy(22, 11, 1300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Call Create_Enemy(22, 11, 2300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Call Create_Enemy(22, 11, 3300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Call Create_Enemy(22, 11, 4300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
- Case 880:
- Call Create_Enemy(21, 11, 1000, 0, 88, 30, 160, 180, 0, False, True)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 920:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 940:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
-
- Case 960:
- Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
- Case 970:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 990:
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1000:
- Call Create_Enemy(19, 21, 2600, 100, 555, 30, 2200, 800, 123, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1030:
- Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
- Case 1070:
- Call Create_Enemy(19, 21, 2600, 100, 555, 30, 2200, 800, 123, False, False)
- Case 1090:
- Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
- Case 1150:
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1160:
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- Case 1170:
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1180:
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- Case 1190:
- Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1290:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1300:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1310:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1320:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- For i = 1 To 8
- Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
- Next i
- Case 1330:
- 'Fat Grey Ship
- Call Create_Enemy(21, 11, 2800, 0, 88, 30, 160, 180, 0, False, True)
- Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
- Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
- Case 1380:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1390:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1400:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1410:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1420:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1430:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1440:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1450:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1460:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1470:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1480:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1490:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1500:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1510:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1520:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1530:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1540:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1550:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1555:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1560:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Case 1565:
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
- Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
-
- Case 1570:
- Call Send_MSG(" ALERT! INCOMING MOTHERSHIP ! ", 0, 1)
- Case 1650:
- Boss_Name.Caption = "BLACK DISC"
- Call Create_Enemy(18, 22, 2400, 0, 17931, 100, 15000, 8000, 666, True, False)
- End Select
- End If
-
- If C_GEC(4) > 1 Then
- Select Case (GEC - C_GEC(4))
- Case 1:
- KilledBoss = True
- Call Check_Score
- GEC = -400
- End Select
- End If
-
- End Select
- End Sub
- Private Sub Check_Fire(Fire_Pattern As Integer, i As Integer)
- 'The firing patterns of the bullets
- Select Case (Fire_Pattern)
- Case 1: 'Homing
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 10, ShipX + (Img(0).ImageWidth * 15) / 2, ShipY + (Img(0).ImageHeight * 15) / 2)
- Case 2: 'Down
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 160, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, 7920)
- Case 3: 'Diagonal Left 1
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 6000)
- Case 4: 'Diagonal Left 2
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 5000)
- Case 5: 'Diagonal Left 3
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 4000)
- Case 6: 'Diagonal Left 4
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 3000)
- Case 7: 'Diagonal Left 5
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 2000)
- Case 8: 'Diagonal Left 6
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 1000)
- Case 9: 'Left
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 720, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15))
- Case 10: 'Diagonal Right 1
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 6000)
- Case 11: 'Diagonal Right 2
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 5000)
- Case 12: 'Diagonal Right 3
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 4000)
- Case 13: 'Diagonal Right 4
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 3000)
- Case 14: 'Diagonal Right 5
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 2000)
- Case 15: 'Diagonal Right 6
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15) + 1000)
- Case 16: 'Right
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 70, 5640, EShip(i).PosY + (Img(EShip(i).Kind).ImageWidth * 15))
- Case 17:
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 40, (Rnd * 4920 + 720), 9000)
- Case 18:
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 40, ShipX, ShipY)
- Case 19:
- Call Create_EBullet(EShip(i).Bul_Kind, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, EShip(i).PosY + (Img(EShip(i).Kind).ImageHeight * 15) / 2, 1, 30, EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) / 2, 9000)
- End Select
- End Sub
- Private Sub Create_EBullet(Kind As Integer, StartX As Integer, StartY As Integer, Direction As Integer, Speed As Integer, DestinationX As Integer, DestinationY As Integer)
- 'Creates an enemy bullet when called
- 'Parameter list:
- ' imagelist index for bullet
- ' starting X coord
- ' starting Y coord
- ' bullet speed
- ' direction of the bullet
- ' ending X coord
- ' ending Y coord
- Dim i As Integer
- If GEC > 0 Then
- For i = 0 To 200
- If EBull(i).Used = False Then
- EBull(i).Used = True
- EBull(i).Kind = Kind
- EBull(i).StartX = StartX
- EBull(i).StartY = StartY
- EBull(i).PosX = StartX
- EBull(i).PosY = StartY
- EBull(i).Dire = Direction
- EBull(i).Spd = Speed
- EBull(i).DestX = DestinationX
- EBull(i).DestY = DestinationY
- Exit For
- End If
- Next i
- End If
- End Sub
- Private Sub Create_Enemy(Kind As Integer, Bullet_Kind As Integer, StartX As Integer, StartY As Integer, Pattern As Integer, Speed As Integer, Hit_Points As Integer, Worth As Integer, Firing_Pattern As Integer, Boss As Boolean, Bonus As Boolean)
- 'This sub creates and enemy when called and place
- 'it on the play field
- 'Parameter list: imagelist index for ship sprite
- ' imagelist index for bullet sprite
- ' starting X coord
- ' starting Y coord
- ' movement pattern
- ' ship movement speed
- ' life points
- ' the amount of score awarded if destroyed
- ' the pattern of the bullets it fires
- ' whether it is a boss
- ' whether is carries bonus
- Dim i As Integer
- For i = 1 To 40
- If EShip(i).Used = False Then
- EShip(i).Used = True
- EShip(i).Kind = Kind
- EShip(i).Bul_Kind = Bullet_Kind
- EShip(i).PosX = StartX
- EShip(i).PosY = StartY
- EShip(i).Patt = Pattern
- EShip(i).Max_Life = Hit_Points
- EShip(i).Life = Hit_Points
- EShip(i).Score = Worth
- EShip(i).Span = 0
- EShip(i).Frame = 1
- EShip(i).Spd = Speed
- EShip(i).Has_Bonus = Bonus
- EShip(i).Firing_Patt = Firing_Pattern
- EShip(i).Boss = False
-
- 'Drop down the boss bar if a boss is created
- If Boss = True Then
- EShip(i).Boss = True
- Moving_BossBar = 1
- Boss_Bar_Top.Width = Boss_Bar_Bottom.Width
- End If
- Exit For
- End If
- Next i
- End Sub
- Private Sub Create_Bonus(PosX As Integer, PosY As Integer)
- 'This sub creates a powerup object and allows it to be
- 'placed on the screen based on its called X and Y coord
- Dim i As Integer
- For i = 0 To 2
- If PowerUp(i).Used = False Then
- PowerUp(i).Used = True
- PowerUp(i).PosX = PosX
- PowerUp(i).PosY = PosY
- PowerUp(i).Frame = 1
- Exit For
- End If
- Next i
- End Sub