FormBW.frm
上传用户:life_sale
上传日期:2021-07-23
资源大小:805k
文件大小:394k
源码类别:

射击游戏

开发平台:

Visual Basic

  1.                         End If
  2.                         If MG_Lvl >= 4 Then
  3.                             Wave_Pattern = 4
  4.                             Bull_Delay = 4
  5.                         End If
  6.                         If MG_Lvl >= 5 Then
  7.                             Wave_Pattern = 5
  8.                             Bull_Type_Limit = 3
  9.                         End If
  10.                         If MG_Lvl >= 6 Then
  11.                             Wave_Pattern = 6
  12.                             Bull_Type_Limit = 4
  13.                         End If
  14.                         If MG_Lvl >= 7 Then
  15.                             Wave_Pattern = 7
  16.                             Bull_Delay = 3
  17.                         End If
  18.                         If MG_Lvl >= 8 Then
  19.                             Wave_Pattern = 8
  20.                             Bull_Delay = 2
  21.                         End If
  22.                         If MG_Lvl >= 9 Then
  23.                             Wave_Pattern = 9
  24.                             Bull_Delay = 1
  25.                         End If
  26.                         If MG_Lvl >= 10 Then
  27.                             Wave_Pattern = 10
  28.                             Bull_Type_Limit = 5
  29.                         End If
  30.                         For i = 0 To Bull_Type_Limit
  31.                             If Bull(i).Used = False Then
  32.                                 Bull(i).Used = True
  33.                                 Bull(i).Kind = Wave_Pattern
  34.                                 Bull(i).Dire = 8
  35.                                 Bull(i).Span = 0
  36.                                 Bull(i).Dama = 4 * MG_Lvl
  37.                                 Bull(i).PosX = ShipX + -540
  38.                                 Bull(i).PosY = ShipY - 200
  39.                                 Bull(i).Spd = B_Speed
  40.                                 Exit For
  41.                             End If
  42.                         Next i
  43.                     End If  '-End 1
  44.                 End If
  45.             End If  '-End PLASMA WAVE
  46.             
  47.             If SHP(0) = 4 Then                  'VULCAN BLUE
  48.                 If Bull_Delay = 0 Then
  49.                     Const Vulcan_Blue_Damage = 20
  50.                     If MG_Lvl >= 1 Then '----
  51.                         B_Speed = 300 'Not Used
  52.                         Bull_Delay = 8
  53.                         Bull_Type_Limit = 80
  54.                         If MG_Lvl >= 2 Then
  55.                             Bull_Delay = 6
  56.                         End If
  57.                         If MG_Lvl >= 3 Then
  58.                             B_Speed = 350
  59.                         End If
  60.                         If MG_Lvl >= 4 Then
  61.                             If MG_Lvl >= 5 Then
  62.                                 Bull_Delay = 4
  63.                             End If
  64.                             If MG_Lvl >= 6 Then
  65.                                 B_Speed = 400
  66.                             End If
  67.                             If MG_Lvl >= 7 Then
  68.                                 Bull_Delay = 3
  69.                             End If
  70.                             If MG_Lvl >= 8 Then
  71.                                 B_Speed = 450
  72.                             End If
  73.                             If MG_Lvl >= 9 Then
  74.                                 If MG_Lvl >= 10 Then
  75.                                     B_Speed = 800
  76.                                 End If
  77.                                 For i = 0 To Bull_Type_Limit
  78.                                     If Bull(i).Used = False Then
  79.                                         Bull(i).Used = True
  80.                                         Bull(i).Kind = 1
  81.                                         Bull(i).Dire = 8
  82.                                         Bull(i).Span = 0
  83.                                         Bull(i).Dama = Vulcan_Blue_Damage
  84.                                         Bull(i).PosX = ShipX + 940
  85.                                         Bull(i).PosY = ShipY + 600
  86.                                         Bull(i).Spd = B_Speed
  87.                                         Exit For
  88.                                     End If
  89.                                 Next i
  90.                                 For i = 0 To Bull_Type_Limit
  91.                                     If Bull(i).Used = False Then
  92.                                         Bull(i).Used = True
  93.                                         Bull(i).Kind = 1
  94.                                         Bull(i).Dire = 8
  95.                                         Bull(i).Span = 0
  96.                                         Bull(i).Dama = Vulcan_Blue_Damage
  97.                                         Bull(i).PosX = ShipX - 460
  98.                                         Bull(i).PosY = ShipY + 600
  99.                                         Bull(i).Spd = B_Speed
  100.                                         Exit For
  101.                                     End If
  102.                                 Next i
  103.                             End If  '-End 9
  104.                             For i = 0 To Bull_Type_Limit
  105.                                 If Bull(i).Used = False Then
  106.                                     Bull(i).Used = True
  107.                                     Bull(i).Kind = 1
  108.                                     Bull(i).Dire = 8
  109.                                     Bull(i).Span = 0
  110.                                     Bull(i).Dama = Vulcan_Blue_Damage
  111.                                     Bull(i).PosX = ShipX + 580
  112.                                     Bull(i).PosY = ShipY + 300
  113.                                     Bull(i).Spd = B_Speed
  114.                                     Exit For
  115.                                 End If
  116.                             Next i
  117.                             For i = 0 To Bull_Type_Limit
  118.                                 If Bull(i).Used = False Then
  119.                                     Bull(i).Used = True
  120.                                     Bull(i).Kind = 1
  121.                                     Bull(i).Dire = 8
  122.                                     Bull(i).Span = 0
  123.                                     Bull(i).Dama = Vulcan_Blue_Damage
  124.                                     Bull(i).PosX = ShipX - 100
  125.                                     Bull(i).PosY = ShipY + 300
  126.                                     Bull(i).Spd = B_Speed
  127.                                     Exit For
  128.                                 End If
  129.                             Next i
  130.                         End If  '-End 4
  131.                         For i = 0 To Bull_Type_Limit
  132.                             If Bull(i).Used = False Then
  133.                                 Bull(i).Used = True
  134.                                 Bull(i).Kind = 1
  135.                                 Bull(i).Dire = 8
  136.                                 Bull(i).Span = 0
  137.                                 Bull(i).Dama = Vulcan_Blue_Damage
  138.                                 Bull(i).PosX = ShipX + 240
  139.                                 Bull(i).PosY = ShipY - 100
  140.                                 Bull(i).Spd = B_Speed
  141.                                 Exit For
  142.                             End If
  143.                         Next i
  144.                     End If  '-End 1
  145.                 End If
  146.             End If  '-End Vulcan Blue
  147.         End If  '-END FOR ALL MG's
  148.         
  149.         
  150.         If Lock_SideGun = False And Lock_All = False And Ship_Firing = True Then
  151.             If SHP(1) = 0 Then                  'MICRO MISSILES
  152.                 If Bull_Delay2 = 0 Then
  153.                 Static Micro_LR As Integer
  154.                     If SG_Lvl >= 1 Then '----
  155.                         B_Speed = 0 'Not Used
  156.                         Bull_Delay2 = 1
  157.                         Bull_Type_Limit = 1
  158.                         If SG_Lvl >= 2 Then '----
  159.                             Bull_Type_Limit = 3
  160.                         End If
  161.                         If SG_Lvl >= 3 Then '----
  162.                             Bull_Type_Limit = 5
  163.                         End If
  164.                         If SG_Lvl >= 4 Then '----
  165.                             Bull_Type_Limit = 7
  166.                         End If
  167.                         If SG_Lvl >= 5 Then '----
  168.                             Bull_Type_Limit = 9
  169.                         End If
  170.                         
  171.                         If Micro_LR = 0 Then
  172.                             For i = 200 To (Bull_Type_Limit + 200)
  173.                                 If Bull(i).Used = False Then
  174.                                     Bull(i).Used = True
  175.                                     Bull(i).Kind = 1
  176.                                     Bull(i).Dire = 8
  177.                                     Bull(i).Span = 0
  178.                                     Bull(i).Dama = 5 + (5 * SG_Lvl)
  179.                                     Bull(i).PosX = ShipX + 0
  180.                                     Bull(i).PosY = ShipY + 100
  181.                                     Bull(i).Spd = B_Speed
  182.                                     Exit For
  183.                                 End If
  184.                             Next i
  185.                             Micro_LR = 1
  186.                         Else:
  187.                             Micro_LR = 0
  188.                             For i = 200 To (Bull_Type_Limit + 200)
  189.                                 If Bull(i).Used = False Then
  190.                                     Bull(i).Used = True
  191.                                     Bull(i).Kind = 1
  192.                                     Bull(i).Dire = 8
  193.                                     Bull(i).Span = 0
  194.                                     Bull(i).Dama = 5 + (5 * SG_Lvl)
  195.                                     Bull(i).PosX = ShipX + 560
  196.                                     Bull(i).PosY = ShipY + 100
  197.                                     Bull(i).Spd = B_Speed
  198.                                     Exit For
  199.                                 End If
  200.                             Next i
  201.                         End If
  202.                     End If '-End 1
  203.                 End If
  204.             End If  '-END FOR MICRO MISSILES
  205.             
  206.             If SHP(1) = 1 Then                  'PULSE RING
  207.                 If Bull_Delay2 = 0 Then
  208.                     Static Pulse_Angle As Integer
  209.                     If SG_Lvl >= 1 Then '----
  210.                         B_Speed = 0 'Not Used
  211.                         Bull_Delay2 = 1
  212.                         Bull_Type_Limit = 0
  213.                         Pulse_Angle = Pulse_Angle + 1
  214.                         If SG_Lvl >= 1 And SG_Lvl <= 2 Then
  215.                             If Pulse_Angle > 3 Then Pulse_Angle = 1
  216.                         End If
  217.                         If SG_Lvl >= 3 And SG_Lvl <= 4 Then
  218.                             If Pulse_Angle > 6 Then Pulse_Angle = 4
  219.                         End If
  220.                         If SG_Lvl >= 5 Then
  221.                             If Pulse_Angle > 9 Then Pulse_Angle = 7
  222.                         End If
  223.                         For i = 200 To 300
  224.                             If Bull(i).Used = False Then
  225.                                 Bull(i).Used = True
  226.                                 Bull(i).Kind = Pulse_Angle
  227.                                 Bull(i).Dire = 8
  228.                                 Bull(i).Span = 0
  229.                                 Bull(i).Dama = 5 * SG_Lvl
  230.                                 Bull(i).PosX = ShipX - 600
  231.                                 Bull(i).PosY = ShipY - 700
  232.                                 Bull(i).Spd = B_Speed
  233.                                 Exit For
  234.                             End If
  235.                         Next i
  236.                     End If  '-End 1
  237.                 End If
  238.             End If      'END FOR PULSE RING
  239.             
  240.             If SHP(1) = 2 Then                  'CRESCENT BLADES
  241.                 If Bull_Delay2 = 0 Then
  242.                 Dim Cres_Angle As Integer
  243.                 Static CresLR(100) As Integer
  244.                     If SG_Lvl >= 1 Then '----
  245.                         B_Speed = 0 'Not Used
  246.                         Bull_Delay2 = 5
  247.                         Bull_Type_Limit = 1
  248.                         Cres_Angle = Cres_Angle + 1
  249.                         If SG_Lvl >= 2 Then
  250.                             Bull_Type_Limit = 3
  251.                         End If
  252.                         If SG_Lvl >= 3 Then
  253.                             Bull_Type_Limit = 5
  254.                         End If
  255.                         If SG_Lvl >= 4 Then
  256.                             Bull_Type_Limit = 7
  257.                         End If
  258.                         If SG_Lvl >= 5 Then
  259.                             Bull_Type_Limit = 9
  260.                         End If
  261.                         For i = 200 To (200 + Bull_Type_Limit)
  262.                             If Bull(i).Used = False Then
  263.                                 CresLR(i - 200) = i Mod 2
  264.                                 Bull(i).Used = True
  265.                                 Bull(i).Kind = Cres_Angle
  266.                                 Bull(i).Dire = 8
  267.                                 Bull(i).Span = 0
  268.                                 Bull(i).Dama = 5 + (SG_Lvl * 15)
  269.                                 Bull(i).PosX = ShipX + 150
  270.                                 Bull(i).PosY = ShipY - 0
  271.                                 Bull(i).Spd = B_Speed
  272.                                 Exit For
  273.                             End If
  274.                         Next i
  275.                     End If
  276.                 End If
  277.             End If      '-END FOR CRESCENT BLADES
  278.             
  279.             If SHP(1) = 3 Then                  'CREEP MINE
  280.                 If Bull_Delay2 = 0 Then
  281.                     If SG_Lvl >= 1 Then '----
  282.                         B_Speed = 50 'Not Used
  283.                         Bull_Delay2 = 14
  284.                         Bull_Type_Limit = 2
  285.                         If SG_Lvl >= 2 Then
  286.                             Bull_Type_Limit = 3
  287.                             Bull_Delay2 = 12
  288.                         End If
  289.                         If SG_Lvl >= 3 Then
  290.                             Bull_Type_Limit = 5
  291.                             Bull_Delay2 = 10
  292.                         End If
  293.                         If SG_Lvl >= 4 Then
  294.                             Bull_Type_Limit = 7
  295.                             Bull_Delay2 = 8
  296.                         End If
  297.                         If SG_Lvl >= 5 Then
  298.                             Bull_Type_Limit = 10
  299.                             Bull_Delay2 = 6
  300.                         End If
  301.                         For i = 200 To (200 + Bull_Type_Limit)
  302.                             If Bull(i).Used = False Then
  303.                                 Bull(i).Used = True
  304.                                 Bull(i).Kind = 1
  305.                                 Bull(i).Dire = 8
  306.                                 Bull(i).Span = 0
  307.                                 Bull(i).Dama = 25 + (25 * SG_Lvl)
  308.                                 Bull(i).PosX = ShipX + 240
  309.                                 Bull(i).PosY = ShipY - 0
  310.                                 Bull(i).Spd = B_Speed
  311.                                 Exit For
  312.                             End If
  313.                         Next i
  314.                     End If
  315.                 End If
  316.             End If      '-END FOR CREEP MINE
  317.             
  318.         End If  '-END FOR ALL SIDE GUNS
  319.         
  320.         
  321.         'Decrease the counter for the delay for the next bullet to appear
  322.         Bull_Delay = Bull_Delay - 1
  323.         Bull_Delay2 = Bull_Delay2 - 1
  324.         If Bull_Delay <= 0 Then Bull_Delay = 0
  325.         If Bull_Delay2 <= 0 Then Bull_Delay2 = 0
  326.         
  327.         
  328.                                     'MANIPULATE EXISTING BULLET
  329.         'This sub modifies the existing bullets created in the codes above.
  330.         'Modifications are on their X and Y coordinates, and their availability
  331.         For i = 0 To 300
  332.             'If bullet is created and still in play field...
  333.             If Bull(i).Used = True Then
  334.                 
  335.                 'Increases their time in play ...
  336.                 Bull(i).Span = Bull(i).Span + 1
  337.                 
  338.                 'These codes are for specialized weapons and their
  339.                 'behaviors. it doesn't affect other general weapons
  340.                 If (SHP(0) = 2 And i < 200) Then
  341.                     If Bull(i).Span >= ((Rnd * 10) + Particle_Range) Then Bull(i).Used = False      'Particle Burst
  342.                 End If
  343.                 If (SHP(1) = 2 And i >= 200 And i < 290) Then
  344.                     If Bull(i).Span < 100 Then Bull(i).PosY = Bull(i).PosY + (15 * Bull(i).Span)    'Crescent Blade
  345.                 End If
  346.                 If (SHP(1) = 3 And (i >= 200 And i < 290)) And (Bull(i).Span Mod 15 = 1) Then    'Creep Mine
  347.                     Bull(i).Kind = 2
  348.                 Else:
  349.                     If SHP(1) = 3 And i >= 200 And i < 290 Then Bull(i).Kind = 1
  350.                 End If
  351.                                 
  352.                 'These codes changes the Bullet's X/Y coordinates
  353.                 'based on their bullet's direction (Bull.dire)
  354.                 If Bull(i).Dire = 7 Then
  355.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  356.                     Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 3 * 2
  357.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  358.                 End If
  359.                 If Bull(i).Dire = 72 Then
  360.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  361.                     Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 3
  362.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  363.                 End If
  364.                 If Bull(i).Dire = 73 Then
  365.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  366.                     Bull(i).PosX = Bull(i).PosX - Bull(i).Spd / 7
  367.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  368.                 End If
  369.                 If Bull(i).Dire = 79 And i < 200 Then
  370.                     Bull(i).PosX = Bull(i).PosX + ((Particle_EndX(i) - Particle_StartX(i)) / 20)
  371.                     Bull(i).PosY = Bull(i).PosY - ((Particle_StartY(i) - Particle_EndY(i)) / 20)
  372.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  373.                 End If
  374.                 If Bull(i).Dire = 8 Then
  375.                     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
  376.                     If (SHP(1) = 2 And i >= 200 And i < 290) Then
  377.                         If CresLR(i - 200) = 0 Then Bull(i).PosX = Bull(i).PosX - ((-15 + Bull(i).Span) * ((i - 200) + 10)) 'cresent blades
  378.                         If CresLR(i - 200) = 1 Then Bull(i).PosX = Bull(i).PosX + ((-15 + Bull(i).Span) * ((i - 200) + 10))
  379.                     End If
  380.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd
  381.                     If (SHP(0) = 1 And i < 200) Then Bull(i).PosX = Laser_PosX  'FOR LASER ONLY
  382.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  383.                 End If
  384.                 If Bull(i).Dire = 9 Then
  385.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  386.                     Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 3 * 2
  387.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX > 5655 Then Bull(i).Used = False
  388.                 End If
  389.                 If Bull(i).Dire = 92 Then
  390.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  391.                     Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 3
  392.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  393.                 End If
  394.                 If Bull(i).Dire = 93 Then
  395.                     Bull(i).PosY = Bull(i).PosY - Bull(i).Spd / 3 * 2
  396.                     Bull(i).PosX = Bull(i).PosX + Bull(i).Spd / 7
  397.                     If Bull(i).PosY <= 1200 Or Bull(i).PosX < 720 Then Bull(i).Used = False
  398.                 End If
  399.             End If
  400.             
  401.                                     'PAINT BULLET
  402.             'If the bullet is still in play field, it
  403.             'will be painted and show to the player.
  404.             'Different ship configurations will show
  405.             'different bullet sprites from their associated
  406.             'imagelist...
  407.             If Bull(i).Used = True Then
  408.                 If i < 200 Then
  409.                     If SHP(0) = 0 Then Img(4).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  410.                     If SHP(0) = 1 Then Img(6).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  411.                     If SHP(0) = 2 Then Img(7).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  412.                     If SHP(0) = 3 Then Img(8).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  413.                     If SHP(0) = 4 Then Img(14).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  414.                 End If
  415.                 If i >= 200 And i < 290 Then
  416.                     If SHP(1) = 0 Then Img(9).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  417.                     If SHP(1) = 1 Then Img(10).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  418.                     If SHP(1) = 2 Then
  419.                         Bull(i).Kind = Bull(i).Kind + 1
  420.                         If Bull(i).Kind > 4 Then Bull(i).Kind = 1
  421.                         Img(11).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  422.                     End If
  423.                     If SHP(1) = 3 Then Img(12).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  424.                 End If
  425.                 If i >= 290 Then
  426.                     If SHP(2) = 0 Then
  427.                         Bull(i).Kind = Bull(i).Kind + 1
  428.                         If Bull(i).Kind > 4 Then Bull(i).Kind = 1
  429.                         Img(17).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  430.                     End If
  431.                     If SHP(2) = 1 Then
  432.                         Bull(i).Kind = Bull(i).Kind + 1
  433.                         If Bull(i).Kind > 4 Then Bull(i).Kind = 1
  434.                         Img(5).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  435.                     End If
  436.                     If SHP(2) = 3 Then
  437.                         Bull(i).Kind = Bull(i).Kind + 1
  438.                         Img(3).ListImages(Bull(i).Kind).Draw Play_Layer.hDC, Bull(i).PosX, Bull(i).PosY, 1
  439.                         If Bull(i).Kind > 21 Then
  440.                             Bull(i).Used = False
  441.                             Bull(i).Kind = 0
  442.                         End If
  443.                     End If
  444.                 End If
  445.             End If
  446.     
  447.         Next i
  448.         
  449.         '-----------------------------------------
  450.                                 'MOVING ENEMY
  451.         'This portion of code is similar to the moving patterns
  452.         'of the player's bullet above.
  453.         'At different time (ship's span), these enemy ships
  454.         'will move with different speed and in different direction
  455.         For i = 1 To 40
  456.             If EShip(i).Used = True Then
  457.                 EShip(i).Span = EShip(i).Span + 1
  458.                 
  459.                 If EShip(i).Patt = 4646 Then  'Boss Left Right - Left Right
  460.                     Static BossLR As Boolean
  461.                     If EShip(i).PosY < 1560 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  462.                     If EShip(i).PosY >= 940 Then
  463.                         If BossLR = True Then
  464.                             EShip(i).PosX = EShip(i).PosX - EShip(i).Spd
  465.                             If EShip(i).PosX < 980 Then BossLR = False
  466.                         Else:
  467.                             EShip(i).PosX = EShip(i).PosX + EShip(i).Spd
  468.                             If EShip(i).PosX + (Img(EShip(i).Kind).ImageWidth * 15) > 5380 Then BossLR = True
  469.                         End If
  470.                     End If
  471.                     If EShip(i).Span Mod 10 = 1 Then Call Check_Fire(1, i)
  472.                 End If
  473.                 
  474.                 If EShip(i).Patt = 555 Then  'Burst-Burst
  475.                     If EShip(i).Span Mod 40 < 10 Then Call Check_Fire(17, i)
  476.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  477.                 End If
  478.                 If EShip(i).Patt = 88 Then  'Straight Down
  479.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  480.                     For x = 1 To 16
  481.                         If EShip(i).Firing_Patt = x And EShip(i).Span Mod 25 = 20 Then Call Check_Fire(x, i)
  482.                     Next x
  483.                     If EShip(i).Firing_Patt = 32147 And EShip(i).Span Mod 7 = 1 Then Call Check_Fire(Rnd * 6 + 3, i)
  484.                     If EShip(i).Firing_Patt = 12369 And EShip(i).Span Mod 7 = 1 Then Call Check_Fire(Rnd * 6 + 10, i)
  485.                 End If
  486.                 
  487.                 If EShip(i).Patt = 86 Then  'Down Curve right
  488.                     If EShip(i).Span >= 20 And EShip(i).Span <= 39 Then EShip(i).Spd = 30
  489.                     If EShip(i).Span >= 70 And EShip(i).Span <= 99 Then EShip(i).Spd = 15
  490.                     If EShip(i).Span > 40 Then EShip(i).PosX = EShip(i).PosX + 30
  491.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  492.                     If EShip(i).Span Mod 40 = 39 Then Call Check_Fire(EShip(i).Firing_Patt, i)
  493.                 End If
  494.                 
  495.                 If EShip(i).Patt = 84 Then  'Down Curve left
  496.                     If EShip(i).Span >= 20 And EShip(i).Span <= 39 Then EShip(i).Spd = 30
  497.                     If EShip(i).Span >= 70 And EShip(i).Span <= 99 Then EShip(i).Spd = 15
  498.                     If EShip(i).Span > 40 Then EShip(i).PosX = EShip(i).PosX - 30
  499.                     If EShip(i).Span Mod 40 = 39 Then Call Check_Fire(EShip(i).Firing_Patt, i)
  500.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  501.                 End If
  502.                               
  503.                 If EShip(i).Patt = 821 Then  'Down then slow
  504.                     If EShip(i).Span >= 20 And EShip(i).Span <= 59 Then EShip(i).Spd = 40
  505.                     If EShip(i).Span >= 60 And EShip(i).Span <= 99 Then EShip(i).Spd = 20
  506.                     If EShip(i).Span >= 100 Then EShip(i).Spd = 10
  507.                     If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
  508.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  509.                 End If
  510.                 
  511.                 If EShip(i).Patt = 83 Then  'Left Diagonal
  512.                     If EShip(i).Span >= 30 Then EShip(i).PosX = EShip(i).PosX + 35
  513.                     If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
  514.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  515.                 End If
  516.                 If EShip(i).Patt = 81 Then  'Right Diagonal
  517.                     If EShip(i).Span >= 30 Then EShip(i).PosX = EShip(i).PosX - 35
  518.                     If EShip(i).Span Mod 35 = 34 Then Call Check_Fire(EShip(i).Firing_Patt, i)
  519.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  520.                 End If
  521.                 
  522.                 If EShip(i).Patt = 31313 Then  'Meteor Jiggly
  523.                     EShip(i).PosX = EShip(i).PosX - 5
  524.                     EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  525.                     If EShip(i).Span Mod (Rnd * 40 + 1) = 1 Then EShip(i).Frame = EShip(i).Frame + 1
  526.                     If EShip(i).Frame > 4 Then EShip(i).Frame = 1
  527.                 End If
  528.                 
  529.                 If EShip(i).Patt = 3311 Then  'Meteor Boss
  530.                     Static M_Dir As Integer
  531.                     If EShip(i).Span < 25 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  532.                     If EShip(i).Span Mod 30 = 1 Then M_Dir = (Rnd * 2)
  533.                     If EShip(i).Span Mod 100 < 25 Then EShip(i).PosX = EShip(i).PosX - 75
  534.                     If EShip(i).Span Mod 100 > 50 And EShip(i).Span Mod 100 < 75 Then EShip(i).PosX = EShip(i).PosX + 75
  535.                     If EShip(i).Span Mod 100 < 25 Then Call Check_Fire(M_Dir + 17, i)
  536.                     If EShip(i).Span Mod 100 > 50 And EShip(i).Span Mod 100 < 75 Then Call Check_Fire(M_Dir + 17, i)
  537.                     If EShip(i).Span Mod 125 = 1 Then
  538.                         For x = 1 To 20
  539.                             Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  540.                         Next x
  541.                     End If
  542.                 End If
  543.                             
  544.                 If EShip(i).Patt = 2288 Then    'Mother Bubble
  545.                     If EShip(i).PosY < 1800 Then EShip(i).PosY = EShip(i).PosY + EShip(i).Spd
  546.                     If EShip(i).Span Mod 200 < 25 Then
  547.                         EShip(i).PosY = EShip(i).PosY + 60
  548.                         EShip(i).PosX = EShip(i).PosX - 60
  549.                     End If
  550.                     If EShip(i).Span Mod 200 > 50 And EShip(i).Span Mod 200 < 75 Then
  551.                         EShip(i).PosY = EShip(i).PosY + 60
  552.                         EShip(i).PosX = EShip(i).PosX + 60
  553.                     End If
  554.                     If EShip(i).Span Mod 200 > 100 And EShip(i).Span Mod 200 < 125 Then
  555.                         EShip(i).PosY = EShip(i).PosY - 60
  556.                         EShip(i).PosX = EShip(i).PosX + 60
  557.                     End If
  558.                     If EShip(i).Span Mod 200 > 150 And EShip(i).Span Mod 200 < 175 Then
  559.                         EShip(i).PosY = EShip(i).PosY - 60
  560.                         EShip(i).PosX = EShip(i).PosX - 60
  561.                     End If
  562.                     If EShip(i).Span > 25 And EShip(i).Span < 50 Then
  563.                         If EShip(i).Span Mod 5 = 0 Then
  564.                             For x = 0 To 7
  565.                                 Call Check_Fire(x + 10, i)
  566.                             Next x
  567.                         End If
  568.                     End If
  569.                     If EShip(i).Span > 75 And EShip(i).Span < 100 Then
  570.                         Call Check_Fire(1, i)
  571.                     End If
  572.                     If EShip(i).Span > 125 And EShip(i).Span < 150 Then
  573.                         If EShip(i).Span Mod 5 = 0 Then
  574.                             For x = 0 To 7
  575.                                 Call Check_Fire(x + 3, i)
  576.                             Next x
  577.                         End If
  578.                     End If
  579.                     If EShip(i).Span > 175 And EShip(i).Span < 200 Then
  580.                         Call Check_Fire(17, i)
  581.                     End If
  582.                     If EShip(i).Span = 200 Then EShip(i).Span = 0
  583.                 End If
  584.                 
  585.                 If EShip(i).Patt = 7979 Then    'Mother Scyth
  586.                     If EShip(i).PosY < 1500 Then EShip(i).PosY = EShip(i).PosY + 40
  587.                     If EShip(i).Span Mod 240 > 110 And EShip(i).Span Mod 240 < 120 Then EShip(i).PosX = EShip(i).PosX - EShip(i).Spd
  588.                     If EShip(i).Span Mod 240 > 230 And EShip(i).Span Mod 240 < 240 Then EShip(i).PosX = EShip(i).PosX + EShip(i).Spd
  589.                     If EShip(i).PosX < 900 Then EShip(i).PosX = 900
  590.                     If EShip(i).PosX > 2800 Then EShip(i).PosX = 2800
  591.                     If EShip(i).Span Mod 20 = 1 Then Call Check_Fire(1, i)
  592.                     If EShip(i).Span Mod 30 = 1 Then Call Check_Fire(2, i)
  593.                     If EShip(i).Span Mod 150 = 1 Then
  594.                         For x = 0 To 10
  595.                             Call Check_Fire(17, i)
  596.                         Next x
  597.                     End If
  598.                     If EShip(i).Span Mod 70 > 60 And EShip(i).Span Mod 70 < 70 Then
  599.                         Call Check_Fire(17, i)
  600.                     End If
  601.                 End If
  602.                 If EShip(i).Patt = 17931 Then    'BLACK DISC
  603.                     If EShip(i).PosY < 1500 Then EShip(i).PosY = EShip(i).PosY + 50
  604.                     If EShip(i).Span Mod 500 > 25 And EShip(i).Span Mod 500 < 100 Then EShip(i).PosX = EShip(i).PosX - 80
  605.                     If EShip(i).Span Mod 500 > 150 And EShip(i).Span Mod 500 < 250 Then EShip(i).PosY = EShip(i).PosY + 80
  606.                     If EShip(i).Span Mod 500 > 300 And EShip(i).Span Mod 500 < 400 Then EShip(i).PosX = EShip(i).PosX + 80
  607.                     If EShip(i).Span Mod 500 > 450 And EShip(i).Span Mod 500 < 550 Then EShip(i).PosY = EShip(i).PosY - 80
  608.                     
  609.                     If EShip(i).Span Mod 60 = 1 Then Call Check_Fire(2, i)
  610.                     If EShip(i).Span Mod 25 = 1 Then Call Check_Fire(1, i)
  611.                     If EShip(i).Span Mod 500 > 25 And EShip(i).Span Mod 500 < 60 Then
  612.                         If EShip(i).Span Mod 40 = 0 Then Call Check_Fire(19, i)
  613.                     End If
  614.                     If EShip(i).Span Mod 500 = 60 Or EShip(i).Span Mod 500 = 90 Or EShip(i).Span Mod 500 = 120 Then
  615.                         For x = 0 To 3
  616.                             Call Check_Fire(17, i)
  617.                         Next x
  618.                     End If
  619.                     If EShip(i).Span Mod 500 = 401 Or EShip(i).Span Mod 500 = 475 Or EShip(i).Span Mod 500 = 499 Then
  620.                         For x = 0 To 3
  621.                             Call Check_Fire(17, i)
  622.                         Next x
  623.                     End If
  624.                     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)
  625.                     If EShip(i).Span Mod 5 = 0 And EShip(i).Span Mod 500 > 150 And EShip(i).Span Mod 500 < 250 Then
  626.                         If EShip(i).Span Mod 20 = 0 Then Call Check_Fire(16, i)
  627.                         If EShip(i).Span Mod 25 = 0 Then Call Check_Fire(Rnd * 6 + 10, i)
  628.                     End If
  629.                     If EShip(i).Span Mod 200 = 199 Then Call Create_Enemy(21, 11, (Rnd * 3800 + 800), 0, 88, 30, 160, 180, 0, False, True)
  630.                     If EShip(i).Span Mod 200 = 199 Then
  631.                         For x = 1 To 20
  632.                             Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  633.                         Next x
  634.                     End If
  635.                     If EShip(i).Span Mod 5 = 0 And EShip(i).Span Mod 500 > 450 And EShip(i).Span Mod 500 < 550 Then
  636.                         If EShip(i).Span Mod 20 = 0 Then Call Check_Fire(9, i)
  637.                         If EShip(i).Span Mod 30 = 0 Then Call Check_Fire(Rnd * 6 + 3, i)
  638.                     End If
  639.                     If EShip(i).Span Mod 30 = 1 Then Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  640.                     
  641.                     If EShip(i).PosX < 800 Then EShip(i).PosX = 800
  642.                     If EShip(i).PosY > 5325 Then EShip(i).PosY = 5325
  643.                     If EShip(i).PosX > 3705 Then EShip(i).PosX = 3705
  644.                     If EShip(i).Span > 100 Then
  645.                         If EShip(i).PosY < 1500 Then EShip(i).PosY = 1500
  646.                     End If
  647.                 End If
  648.                 
  649.                 'Kill ships
  650.                 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
  651.             
  652.             End If
  653.         Next i
  654.         
  655.         For i = 1 To 40
  656.             If EShip(i).Used = True Then
  657.                 Img(EShip(i).Kind).ListImages(EShip(i).Frame).Draw Play_Layer.hDC, EShip(i).PosX, EShip(i).PosY, 1
  658.             End If
  659.         Next i
  660.         
  661.         '-----------------------------------------
  662.                                 'MOVING E_BULLET
  663.         'Again, similar to player's bullet, but with
  664.         'less complexity
  665.         For i = 0 To 200
  666.             If EBull(i).Used = True Then
  667.                 If EBull(i).Dire = 1 Then
  668.                     Dim Bull_Distance As Double
  669.                     Dim Temp_Division As Integer
  670.                     Bull_Distance = (Abs(EBull(i).DestX - EBull(i).StartX)) + (Abs(EBull(i).DestY - EBull(i).StartY))
  671.                     Temp_Division = (Bull_Distance / 200)
  672.                     EBull(i).PosX = EBull(i).PosX + ((EBull(i).DestX - EBull(i).StartX) / (EBull(i).Spd + Abs(Temp_Division)))
  673.                     EBull(i).PosY = EBull(i).PosY + ((EBull(i).DestY - EBull(i).StartY) / (EBull(i).Spd + Abs(Temp_Division)))
  674.                 End If
  675.                 If EBull(i).Dire = 2 Then
  676.                 End If
  677.             
  678.             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
  679.             
  680.             Select Case (EBull(i).Kind)
  681.             Case 11:
  682.                 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
  683.                     EBull(i).Used = False
  684.                     Call Minor_HIT
  685.                 End If
  686.             Case 12:
  687.                 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
  688.                     EBull(i).Used = False
  689.                     Call Minor_HIT
  690.                 End If
  691.             Case 21:
  692.                 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
  693.                     EBull(i).Used = False
  694.                     Call Minor_HIT
  695.                 End If
  696.             Case 22:
  697.                 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
  698.                     EBull(i).Used = False
  699.                     Call Minor_HIT
  700.                 End If
  701.             End Select
  702.             
  703.             If SHP(2) = 1 Then          'For Matrix Globe
  704.                 For x = 290 To 300
  705.                     If Bull(x).Used = True Then
  706.                         'To check the collision of the matrix globe with the enemy's bullets
  707.                         If EBull(i).Kind = 11 Or EBull(i).Kind = 12 Then
  708.                             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
  709.                         Else:
  710.                             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
  711.                         End If
  712.                     End If
  713.                 Next x
  714.             End If
  715.             
  716.             'similar to other sprites, enemy bullets are painted
  717.             Select Case (EBull(i).Kind)
  718.                 Case 11:
  719.                     Img(15).ListImages(1).Draw Play_Layer.hDC, EBull(i).PosX - 75, EBull(i).PosY - 75, 1
  720.                 Case 12:
  721.                     Img(15).ListImages(2).Draw Play_Layer.hDC, EBull(i).PosX - 75, EBull(i).PosY - 75, 1
  722.                 Case 21:
  723.                     Img(16).ListImages(1).Draw Play_Layer.hDC, EBull(i).PosX - 150, EBull(i).PosY - 150, 1
  724.                 Case 22:
  725.                     Img(16).ListImages(2).Draw Play_Layer.hDC, EBull(i).PosX - 150, EBull(i).PosY - 150, 1
  726.                 End Select
  727.             End If
  728.         Next i
  729.         
  730.         '-----------------------------------------
  731.                                 'POWER-UP
  732.         'If a powerup is in play, it'll be animated ...
  733.         For i = 0 To 2
  734.             If PowerUp(i).Used = True Then
  735.                 PowerUp(i).PosY = PowerUp(i).PosY + 30
  736.                 If PowerUp(i).PosY > 7920 Then PowerUp(i).Used = False
  737.                 PowerUp(i).Frame = PowerUp(i).Frame + 1
  738.                 If PowerUp(i).Frame > 15 Then PowerUp(i).Frame = 1
  739.                 Img(26).ListImages(PowerUp(i).Frame).Draw Play_Layer.hDC, PowerUp(i).PosX, PowerUp(i).PosY, 1
  740.             End If
  741.         Next i
  742.         
  743.         '... and moved downwards to the screen bottom.
  744.         For i = 0 To 2
  745.             If PowerUp(i).Used = True Then
  746.                 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
  747.                     Call Alter_G(GEC Mod 2, 1)
  748.                     Call PLAY(7)
  749.                     PowerUp(i).Used = False
  750.                     Exit For
  751.                 End If
  752.             End If
  753.         Next i
  754.         
  755.         '-----------------------------------------
  756.                                 'SHIELD CIRCLE
  757.         'If the player's ship is hit with an enemy bullet,
  758.         'there will be a brief flicker on the player's shield
  759.         If GEC > 0 Then
  760.         If SHIELD_ON_OFF >= 1 Then
  761.             SHIELD_ON_OFF = SHIELD_ON_OFF + 1
  762.             Select Case (SHIELD_ON_OFF)
  763.                 Case 2:
  764.                     Img(5).ListImages(1).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
  765.                 Case 4:
  766.                     Img(5).ListImages(2).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
  767.                 Case 6:
  768.                     Img(5).ListImages(3).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
  769.                 Case 8:
  770.                     Img(5).ListImages(4).Draw Play_Layer.hDC, ShipX - 100, ShipY - 150, 1
  771.                     SHIELD_ON_OFF = 0
  772.             End Select
  773.         End If
  774.         End If
  775.         
  776.         
  777.         '-----------------------------------------
  778.                                                 
  779.                                 'MOVING SHIP
  780.         If (Lock_Engine = False And Lock_All = False) Or (OVERIDE = True) Then
  781.             If Ship_Moving(0) = True Then           'Move LEFT
  782.                 ShipX = ShipX - Ship_Speed
  783.                 If ShipX <= 720 Then
  784.                     ShipX = 720
  785.                 End If
  786.             End If
  787.             If Ship_Moving(1) = True Then           'Move UP
  788.                 ShipY = ShipY - Ship_Speed
  789.                 If ShipY <= 1440 Then
  790.                     ShipY = 1440
  791.                 End If
  792.             End If
  793.             If Ship_Moving(2) = True Then           'Move RIGHT
  794.                 ShipX = ShipX + Ship_Speed
  795.                 If ShipX >= 4920 Then
  796.                     ShipX = 4920
  797.                 End If
  798.             End If
  799.             If Ship_Moving(3) = True Then           'Move DOWN
  800.                 ShipY = ShipY + Ship_Speed
  801.                 If ShipY >= 6860 Then
  802.                     ShipY = 6860
  803.                 End If
  804.             End If
  805.         End If
  806.                             'SHIP PAINTING
  807.         Img(0).ListImages((FPS Mod 3) + 1).Draw Play_Layer.hDC, (ShipX), (ShipY), 1
  808.         
  809.         '-----------------------------------------
  810.                                         'MOVE STATSBAR UP DOWN
  811.         If Moving_StatsBar = 1 Then
  812.             Stats_Bar.Top = Stats_Bar.Top + 48
  813.             Bufferbox(5).Top = Bufferbox(5).Top - 48
  814.             If Stats_Bar.Top >= 7920 Then
  815.                 Stats_Bar.Top = 7920
  816.                 Bufferbox(5).Top = 1080
  817.                 Moving_StatsBar = 0
  818.                 Stats_Bar.Visible = False
  819.             End If
  820.         End If
  821.         
  822.         If Moving_StatsBar = 2 Then
  823.             Stats_Bar.Visible = True
  824.             Stats_Bar.Top = Stats_Bar.Top - 48
  825.             Bufferbox(5).Top = Bufferbox(5).Top + 48
  826.             If Stats_Bar.Top <= 7440 Then
  827.                 Stats_Bar.Top = 7440
  828.                 Bufferbox(5).Top = 1560
  829.                 Moving_StatsBar = 0
  830.             End If
  831.         End If
  832.         
  833.         If Moving_BossBar = 1 Then     'MOVE BOSSBAR UP DOWN
  834.             BossBar.Top = BossBar.Top + 48
  835.             If BossBar.Top >= 1560 Then
  836.                 BossBar.Top = 1560
  837.                 Moving_BossBar = 0
  838.             End If
  839.         End If
  840.         
  841.         If Moving_BossBar = 2 Then
  842.             BossBar.Top = BossBar.Top - 48
  843.             If BossBar.Top <= 1080 Then
  844.                 BossBar.Top = 1080
  845.                 Moving_BossBar = 0
  846.             End If
  847.         End If
  848.         
  849.         If Moving_SpecialBar = 1 Then   'MOVE SPECIALBAR UP DOWN
  850.             Bufferbox(6).Top = Bufferbox(6).Top - 48
  851.             If Bufferbox(6).Top <= 1080 Then
  852.                 Bufferbox(6).Top = 1080
  853.                 Moving_SpecialBar = 0
  854.             End If
  855.         End If
  856.         
  857.         If Moving_SpecialBar = 2 Then
  858.             Bufferbox(6).Top = Bufferbox(6).Top + 48
  859.             If Bufferbox(6).Top >= 1560 Then
  860.                 Bufferbox(6).Top = 1560
  861.                 Moving_SpecialBar = 0
  862.                 Special_Delay = 1
  863.             End If
  864.         End If
  865.         
  866.         If Special_Delay >= 1 Then Special_Delay = Special_Delay + 1
  867.         If Special_Delay = 35 Then Moving_SpecialBar = 1
  868.                 
  869.                                 
  870.                 '-----------------------------------------
  871.                                         'COLLISION DETECTION Bull > EShip
  872.         'These codes perform collision detection between
  873.         'the player's bullets with an enemy's ship.
  874.         'Since the bullet and ships above are painted,
  875.         'It will be calculated to see if any portion of
  876.         'them is overlapping each other, thus causing a hit.
  877.         For i = 0 To 300
  878.             If Bull(i).Used = True Then
  879.                 For x = 1 To 40
  880.                     If EShip(x).Used = True Then
  881.                         Dim Temp_Img As Integer
  882.                         Dim Img_SWidth As Integer
  883.                         Dim Img_SHeight As Integer
  884.                         Dim Bul_SWidth As Integer
  885.                         Dim Bul_SHeight As Integer
  886.                         Dim Img_EWidth As Integer
  887.                         Dim Img_EHeight As Integer
  888.                         Dim Bul_EWidth As Integer
  889.                         Dim Bul_EHeight As Integer
  890.                         
  891.                             If SHP(0) = 0 And i < 200 Then Temp_Img = 4
  892.                             If SHP(0) = 1 And i < 200 Then Temp_Img = 6
  893.                             If SHP(0) = 2 And i < 200 Then Temp_Img = 7
  894.                             If SHP(0) = 3 And i < 200 Then Temp_Img = 8
  895.                             If SHP(0) = 4 And i < 200 Then Temp_Img = 14
  896.                             If SHP(1) = 0 And i >= 200 And i < 290 Then Temp_Img = 9
  897.                             If SHP(1) = 1 And i >= 200 And i < 290 Then Temp_Img = 10
  898.                             If SHP(1) = 2 And i >= 200 And i < 290 Then Temp_Img = 11
  899.                             If SHP(1) = 3 And i >= 200 And i < 290 Then Temp_Img = 12
  900.                             If SHP(2) = 0 And i >= 290 Then Temp_Img = 17
  901.                             If SHP(2) = 1 And i >= 290 Then Temp_Img = 5
  902.                             If SHP(2) = 3 And i >= 290 Then Temp_Img = 3
  903.                             
  904.                             Bul_SHeight = Bull(i).PosY
  905.                             Bul_SWidth = Bull(i).PosX
  906.                             Img_SHeight = EShip(x).PosY
  907.                             Img_SWidth = EShip(x).PosX
  908.                             
  909.                             Bul_EHeight = Bull(i).PosY + Img(Temp_Img).ImageHeight * 15
  910.                             Bul_EWidth = Bull(i).PosX + Img(Temp_Img).ImageWidth * 15
  911.                             Img_EHeight = EShip(x).PosY + Img(EShip(x).Kind).ImageHeight * 15
  912.                             Img_EWidth = EShip(x).PosX + Img(EShip(x).Kind).ImageWidth * 15
  913.                    
  914.                             'Correctly adjust the detection width of weapon if using light beam
  915.                             If SHP(0) = 1 And i < 200 Then      'All Level Light Beam
  916.                                 Bul_SWidth = Bul_SWidth + (10 - MG_Lvl) * 10
  917.                                 Bul_EWidth = Bul_EWidth - (10 - MG_Lvl) * 10
  918.                             End If
  919.                             
  920.                             'The following 10 portions are to correctly detection the
  921.                             'plasma wave weapon based on its varied hegiht and width
  922.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 1 Then     'Wave 1
  923.                                 Bul_SWidth = Bul_SWidth + 48
  924.                                 Bul_EWidth = Bul_EWidth - 48
  925.                                 Bul_SHeight = Bul_SHeight + 17
  926.                                 Bul_EHeight = Bul_EHeight - 35
  927.                             End If
  928.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 2 Then     'Wave 2
  929.                                 Bul_SWidth = Bul_SWidth + 43
  930.                                 Bul_EWidth = Bul_EWidth - 43
  931.                                 Bul_SHeight = Bul_SHeight + 14
  932.                                 Bul_EHeight = Bul_EHeight - 35
  933.                             End If
  934.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 3 Then     'Wave 3
  935.                                 Bul_SWidth = Bul_SWidth + 32
  936.                                 Bul_EWidth = Bul_EWidth - 32
  937.                                 Bul_SHeight = Bul_SHeight + 14
  938.                                 Bul_EHeight = Bul_EHeight - 35
  939.                             End If
  940.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 4 Then     'Wave 4
  941.                                 Bul_SWidth = Bul_SWidth + 26
  942.                                 Bul_EWidth = Bul_EWidth - 26
  943.                                 Bul_SHeight = Bul_SHeight + 14
  944.                                 Bul_EHeight = Bul_EHeight - 35
  945.                             End If
  946.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 5 Then     'Wave 5
  947.                                 Bul_SWidth = Bul_SWidth + 26
  948.                                 Bul_EWidth = Bul_EWidth - 26
  949.                                 Bul_SHeight = Bul_SHeight + 14
  950.                                 Bul_EHeight = Bul_EHeight - 21
  951.                             End If
  952.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 6 Then     'Wave 6
  953.                                 Bul_SWidth = Bul_SWidth + 21
  954.                                 Bul_EWidth = Bul_EWidth - 21
  955.                                 Bul_SHeight = Bul_SHeight + 14
  956.                                 Bul_EHeight = Bul_EHeight - 21
  957.                             End If
  958.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 7 Then     'Wave 7
  959.                                 Bul_SWidth = Bul_SWidth + 14
  960.                                 Bul_EWidth = Bul_EWidth - 14
  961.                                 Bul_SHeight = Bul_SHeight + 9
  962.                                 Bul_EHeight = Bul_EHeight - 21
  963.                             End If
  964.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 8 Then     'Wave 8
  965.                                 Bul_SWidth = Bul_SWidth + 10
  966.                                 Bul_EWidth = Bul_EWidth - 10
  967.                                 Bul_SHeight = Bul_SHeight + 9
  968.                                 Bul_EHeight = Bul_EHeight - 16
  969.                             End If
  970.                             If SHP(0) = 3 And i < 200 And MG_Lvl >= 9 Then     'Wave 9
  971.                                 Bul_SWidth = Bul_SWidth + 7
  972.                                 Bul_EWidth = Bul_EWidth - 7
  973.                                 Bul_SHeight = Bul_SHeight + 6
  974.                                 Bul_EHeight = Bul_EHeight - 10
  975.                             End If
  976.                         
  977.                         'If bullet overlaps enemy's ship ...
  978.                         If Bul_SWidth < Img_EWidth And Bul_EWidth > Img_SWidth And Bul_SHeight < Img_EHeight And Bul_EHeight > Img_SHeight Then
  979.                             'Reduce their hit points by bullet's damage
  980.                             EShip(x).Life = EShip(x).Life - Bull(i).Dama
  981.                             
  982.                             'For bosses ...
  983.                             If EShip(x).Boss = True Then
  984.                                 ' ... they cannot have life less than zero because ...
  985.                                 If EShip(x).Life < 0 Then EShip(x).Life = 0
  986.                                 ' ... width of their lifebar cannot be < 0.
  987.                                 Boss_Bar_Top.Width = EShip(x).Life / EShip(x).Max_Life * Boss_Bar_Bottom.Width
  988.                             End If
  989.                             
  990.                             'Generate a small ricochet explosion on the enemy aircraft
  991.                             Call EXPLODE(EShip(x).PosX + (Rnd * Img(EShip(x).Kind).ImageWidth * 15), EShip(x).PosY + (Rnd * Img(EShip(x).Kind).ImageHeight * 15), 13)
  992.                             
  993.                             'Check for their life points if it is below 0
  994.                             Call Check_EDeath(x)
  995.                             
  996.                             'For plasma wave and matrix globe, the bullet remains after hitting enemy
  997.                             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
  998.                                 Bull(i).Used = True
  999.                             Else:
  1000.                                 'All other bullets will be removed (unused)
  1001.                                 Bull(i).Used = False
  1002.                             End If
  1003.                         End If
  1004.                     End If
  1005.                 Next x
  1006.             End If
  1007.         Next i
  1008.                 
  1009.                 '-----------------------------------------
  1010.                                         'COLLISION DETECTION SHIP VS SHIP
  1011.         'Similar to bullets with eship, this time, detection is
  1012.         'between the player's ship and the enemy's ship
  1013.         For i = 0 To 40
  1014.             If EShip(i).Used = True Then
  1015.                 'Collision detection
  1016.                 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
  1017.                     'If collide, enemy deduct 150 life points
  1018.                     EShip(i).Life = EShip(i).Life - 150
  1019.                     'Player loses 1 shield
  1020.                     Call Minor_HIT
  1021.                     'Checks for enemy's lifepoints
  1022.                     Call Check_EDeath(i)
  1023.                 End If
  1024.             End If
  1025.         Next i
  1026.         
  1027.                 '-----------------------------------------
  1028.                                         'ANIMATE EXPLOSION
  1029.         'This sub paints the explosion picture, if any of it is in play.
  1030.         'It will keep track of their frames and slowly
  1031.         'increment it one by one. after all of its frame
  1032.         ' has been displayed, the explosion object will be
  1033.         ' removed (unused)
  1034.         For i = 0 To 40
  1035.             If Explo(i).Used = True Then
  1036.                 If Explo(i).PosX < 0 Then Explo(i).PosX = 0
  1037.                 If Explo(i).PosY < 0 Then Explo(i).PosY = 0
  1038.                 Img(Explo(i).Kind).ListImages(Explo(i).Current_Frame).Draw Play_Layer.hDC, Explo(i).PosX, Explo(i).PosY, 1
  1039.                 Explo(i).Current_Frame = Explo(i).Current_Frame + 1
  1040.                 If Explo(i).Current_Frame >= Explo(i).Last_Frame Then
  1041.                     Explo(i).Used = False
  1042.                 End If
  1043.             End If
  1044.         Next i
  1045.         
  1046.                 '-----------------------------------------
  1047.                                         'SHAKEIT EFFECT
  1048.         'When a player gets a major hit, the screen
  1049.         'will shake and flash white. These codes does that.
  1050.         
  1051.         If ShakeIT = 3 Then
  1052.             Play_Layer.BackColor = &H0&     'Changes backcolor to BLACK
  1053.             Stats_Bar.Top = 7440
  1054.             ShakeIT = 0
  1055.         End If
  1056.         
  1057.         If ShakeIT >= 1 And ShakeIT <= 2 Then
  1058.             Play_Layer.BackColor = &HFFFFFF 'Change to WHITE
  1059.             Stats_Bar.Top = Stats_Bar.Top - 480     'SHAKE status bar
  1060.             ShakeIT = ShakeIT + 1
  1061.         End If
  1062.         
  1063.         If Giga_Count >= 1 Then             'This is for giga storm only ...
  1064.             Giga_Count = Giga_Count + 1
  1065.             'Shows the lightning image
  1066.             Img(27).ListImages(1).Draw Play_Layer.hDC, 1000, 2000, 1
  1067.             Img(27).ListImages(1).Draw Play_Layer.hDC, 3000, 2000, 1
  1068.             If Giga_Count > 5 Then Giga_Count = 0
  1069.         End If
  1070.                 '-----------------------------------------
  1071.                                         'REPAIRS
  1072.         'If any component of the ship is damaged,
  1073.         'repairs will be perform.
  1074.         If GEC > 0 Then
  1075.         'Repair main gun if damaged
  1076.             If Lock_MainGun = True Then
  1077.                 'Slowly increase the repaired bar
  1078.                 Stt_MGUN_R.Width = Stt_MGUN_R.Width + Repair_Speed
  1079.                 'If repairs completed
  1080.                 If Stt_MGUN_R.Width >= 615 Then
  1081.                     Stt_MGUN_R.Width = 615
  1082.                     Lock_MainGun = False
  1083.                     Call Send_MSG("MainGun Repaired", 3, 0)
  1084.                 End If
  1085.             End If
  1086.             
  1087.             'Repair side gun if damaged
  1088.             If Lock_SideGun = True Then
  1089.                 Stt_SGUN_R.Width = Stt_SGUN_R.Width + Repair_Speed
  1090.                 If Stt_SGUN_R.Width >= 615 Then
  1091.                     Stt_SGUN_R.Width = 615
  1092.                     Lock_SideGun = False
  1093.                     Call Send_MSG("SideGun Repaired", 3, 0)
  1094.                 End If
  1095.             End If
  1096.             
  1097.             'Repair engine if damaged
  1098.             If Lock_Engine = True Then
  1099.                 Stt_ENG_R.Width = Stt_ENG_R.Width + Repair_Speed
  1100.                 If Stt_ENG_R.Width >= 615 Then
  1101.                     Stt_ENG_R.Width = 615
  1102.                     Lock_Engine = False
  1103.                     Call Send_MSG("Engines Repaired", 3, 0)
  1104.                 End If
  1105.             End If
  1106.             
  1107.             'Repair generator if damaged
  1108.             If Lock_Generator = True Then
  1109.                 Stt_PWR_R.Width = Stt_PWR_R.Width + Repair_Speed
  1110.                 If Stt_PWR_R.Width >= 615 Then
  1111.                     Stt_PWR_R.Width = 615
  1112.                     Lock_Generator = False
  1113.                     Call Send_MSG("Generator Repaired", 3, 0)
  1114.                 End If
  1115.             End If
  1116.         End If
  1117.         
  1118.                 '-----------------------------------------
  1119.                                         'BUFFER LINES
  1120.         'This portion moves the on-screen msg sent to the
  1121.         'player and slowly scroll it downwards
  1122.         Buffering = False
  1123.         'If there's any text on screen, text scrolling is performed
  1124.         For i = 0 To 4
  1125.             If BufferText(i).Caption <> "" Then
  1126.                 Buffering = True
  1127.             End If
  1128.         Next i
  1129.         
  1130.         'If the delay count of the lines moving matches
  1131.         'the delay speed set, the text is moved.
  1132.         'Note that there is a slight pause after the
  1133.         'lines have been moved, line after line...
  1134.         If Buffering = True Then
  1135.             Buffer_Count = Buffer_Count + 1
  1136.             If Buffer_Count = Buff_Speed Then
  1137.                 Buffer_Count = 0
  1138.                 Buffer_Mover = True
  1139.             End If
  1140.             
  1141.             'If moving is true (not during the slight pause)
  1142.             If Buffer_Mover = True Then
  1143.                 If Buffer_Count Mod 2 = 0 Then
  1144.                     'Always remove the last line of text
  1145.                     Bufferbox(4).Width = 15
  1146.                     For i = 1 To 3
  1147.                         'From top line to bottom line, move the text downwards
  1148.                         Bufferbox(i).Top = Bufferbox(i).Top + 72
  1149.                         'If the last line reaches the bottom line...
  1150.                         If Bufferbox(3).Top >= 3960 Then
  1151.                             'All the text will inherit its attributes
  1152.                             'to their previous line, thus original
  1153.                             'attributes of the last line is lost.
  1154.                             'Attributes: Forecolor, Backcolor, Text
  1155.                             For x = 4 To 1 Step -1
  1156.                                 BufferText(x).Caption = BufferText(x - 1).Caption
  1157.                                 BufferText(x).ForeColor = BufferText(x - 1).ForeColor
  1158.                                 Bufferbox(x).Width = Bufferbox(x - 1).Width
  1159.                                 BufferText(x).BackColor = BufferText(x - 1).BackColor
  1160.                             Next x
  1161.                             'All the text line will take over the previous
  1162.                             'line's position, thus making it seem like there's
  1163.                             'continous shift of line, no sudden jump.
  1164.                             For x = 1 To 3
  1165.                                 Bufferbox(x).Top = Bufferbox(x).Top - 360
  1166.                             Next x
  1167.                             Buffer_Mover = False
  1168.                             Bufferbox(0).Width = 15
  1169.                             BufferText(0).Caption = ""
  1170.                             BufferText(0).BackColor = &H0&
  1171.                         End If
  1172.                     Next i
  1173.                 End If
  1174.             End If
  1175.         End If
  1176.                 '-----------------------------------------
  1177.                 
  1178.         'These codes Charges the shield bar and special bar
  1179.         'of the player's ship.
  1180.         Const n = 2 'Bonus
  1181.         Select Case (SHP(4))                'CHARGE SPEED (GENERATOR)
  1182.         Case 0: 'DUAL CORE
  1183.             If SHD_Charging = True And SPE_Charging = True Then
  1184.                 SHD_Charge_Speed = SHD_Charge_Base + n
  1185.                 SPE_Charge_Speed = n
  1186.             End If
  1187.             If SHD_Charging = True And SPE_Charging = False Then
  1188.                 SHD_Charge_Speed = SHD_Charge_Base + n * 2
  1189.             End If
  1190.             If SHD_Charging = False And SPE_Charging = True Then
  1191.                 SPE_Charge_Speed = n * 2
  1192.             End If
  1193.         Case 1: 'FUSION
  1194.             If SHD_Charging = True And SPE_Charging = True Then
  1195.                 SHD_Charge_Speed = 0
  1196.                 SPE_Charge_Speed = n * 3
  1197.             End If
  1198.             If SHD_Charging = True And SPE_Charging = False Then
  1199.                 SHD_Charge_Speed = SHD_Charge_Base + n
  1200.             End If
  1201.             If SHD_Charging = False And SPE_Charging = True Then
  1202.                 SPE_Charge_Speed = n * 8
  1203.             End If
  1204.         Case 2: 'MATRIX
  1205.             If SHD_Charging = True And SPE_Charging = True Then
  1206.                 SHD_Charge_Speed = (SHD_Charge_Base + 4) * 3
  1207.                 SPE_Charge_Speed = 0
  1208.             End If
  1209.             If SHD_Charging = True And SPE_Charging = False Then
  1210.                 SHD_Charge_Speed = (SHD_Charge_Base + n) * 3
  1211.             End If
  1212.             If SHD_Charging = False And SPE_Charging = True Then
  1213.                 SPE_Charge_Speed = n
  1214.             End If
  1215.             
  1216.         End Select
  1217.                                
  1218.                 '-----------------------------------------
  1219.                                         'CHARGE SHIELD
  1220.         'If the player's shield is not full,
  1221.         'its bar will charge
  1222.         If SHD_Charging = True And Lock_Generator = False Then
  1223.             BAR_SHD_R.Width = BAR_SHD_R.Width + SHD_Charge_Speed
  1224.             If BAR_SHD_R.Width >= SHD_Width Then
  1225.                 SHD_Charging = False
  1226.                 SHD_Avail = True
  1227.                 BAR_SHD_C.Width = SHD_Width
  1228.                 BAR_SHD_R.Width = SHD_Width
  1229.                 Stt_SHD_Lbl.BackColor = &H0&
  1230.                 Stt_SHD_Lbl.ForeColor = &HFF00&
  1231.             End If
  1232.         End If
  1233.                 '-----------------------------------------
  1234.                                         'CHARGE SPECIAL
  1235.         'If the player's special bar is not full,
  1236.         'it will charge
  1237.         If SPE_Charging = True And Lock_Generator = False Then
  1238.             BAR_SPE_R.Width = BAR_SPE_R.Width + SPE_Charge_Speed
  1239.             If BAR_SPE_R.Width >= SPE_Width Then
  1240.                 SPE_Charging = False
  1241.                 SPE_Avail = True
  1242.                 BAR_SPE_C.Width = SPE_Width
  1243.                 BAR_SPE_R.Width = SPE_Width
  1244.                 Stt_SPE_Lbl.BackColor = &H0&
  1245.                 Stt_SPE_Lbl.ForeColor = &HFF00&
  1246.             End If
  1247.         End If
  1248.         
  1249.         
  1250.                 '-----------------------------------------
  1251.     End If
  1252.     
  1253.     Call GEC_Coding     'Create enemies at specified time (see below)
  1254.     
  1255.     For i = 200 To 290  'Remove Pulse Ring!
  1256.         If SHP(1) = 1 And i >= 200 And i < 290 Then Bull(i).Used = False
  1257.     Next i
  1258. End Sub
  1259. Private Sub GEC_Coding()
  1260. Dim i As Integer
  1261.                 '-----------------------------------------
  1262.                 '               GEC CODING
  1263.                 '               GEC CODING
  1264.                 '               GEC CODING
  1265.                 '-----------------------------------------
  1266.     'Ships  :   18  Big Ufo
  1267.     '           19  Ferry
  1268.     '           20  Grey Fat Ship
  1269.     '           21  Bubble Yellow
  1270.     '           22  Army Fighter
  1271.     '           23  Meteor Boss
  1272.     '           24  Big Scyth
  1273.     '           25  Small Scyth
  1274.     '           28  Small Meteors
  1275.     '           29  Medium Meteors
  1276.     '           30  Big Meteors
  1277.     '           31  Mother Bubble
  1278. '-FOR TESTING ONLY-
  1279. 'Uncomment lines below until the ----- only for
  1280. 'testing purposes.
  1281. 'The first line skips the intro and let the player jumo directly into play.
  1282. 'The following line each will allow the player to
  1283. 'skip a single stage.
  1284. '-Start uncomment below this line-
  1285. 'If GEC = 1 Then GEC = 150
  1286. 'If GEC = 151 Then
  1287. '    GEC = (2700 + 60)     'Modify the 2nd number in the bracket ONLY!
  1288. '    C_GEC(0) = 1250
  1289. '    C_GEC(1) = 2500
  1290. '    C_GEC(2) = 2600
  1291. '    C_GEC(3) = 2700
  1292. 'End If
  1293. '------------
  1294.     Select Case (GEC)
  1295.         Case 1:
  1296.             Lock_All = True
  1297.             ShipX = 2800
  1298.             ShipY = 8000
  1299.         Case 20:
  1300.             Call Send_MSG(" ALERT ! APPROACHING ENEMY BASE ! ", 0, 1)
  1301.             OVERIDE = True
  1302.             Ship_Moving(1) = True
  1303.             Call PLAY(5)
  1304.         Case 45:
  1305.             Ship_Moving(1) = False
  1306.         Case 90:
  1307.             Call Send_MSG("> Command Base: Good Luck, Black Winter! ", 0, 0)
  1308.         Case 110:
  1309.             Call PLAY(6)
  1310.         Case 150:
  1311.             Stats_Bar.Visible = True
  1312.             Moving_StatsBar = 2
  1313.             Lock_All = False
  1314.             OVERIDE = False
  1315.             Call PLAY(4)
  1316.         Case 170:
  1317.         Call Send_MSG(" Stage 1: The Breach ", 0, 0)
  1318.             Call Create_Enemy(25, 11, 1760, 0, 88, 50, 40, 50, 1, False, False)
  1319.         Case 180:
  1320.             Call Create_Enemy(25, 11, 2760, 0, 88, 50, 40, 50, 1, False, False)
  1321.         Case 190:
  1322.             Call Create_Enemy(25, 11, 3760, 0, 88, 50, 40, 50, 1, False, False)
  1323.         Case 270:
  1324.             Call Create_Enemy(25, 11, 3760, 0, 88, 50, 40, 50, 1, False, False)
  1325.         Case 280:
  1326.             Call Create_Enemy(25, 11, 2760, 0, 88, 50, 40, 50, 1, False, False)
  1327.         Case 290:
  1328.             Call Create_Enemy(25, 11, 1760, 0, 88, 50, 40, 50, 1, False, False)
  1329.         Case 370:
  1330.             Call Create_Enemy(25, 11, 2260, 0, 88, 50, 40, 50, 1, False, False)
  1331.             Call Create_Enemy(25, 11, 4260, 0, 88, 50, 40, 50, 1, False, False)
  1332.         Case 390:
  1333.             Call Create_Enemy(25, 11, 1260, 0, 88, 50, 40, 50, 1, False, False)
  1334.             Call Create_Enemy(25, 11, 3260, 0, 88, 50, 40, 50, 1, False, False)
  1335.         Case 500:
  1336.             Call Create_Enemy(21, 11, 4660, 0, 88, 25, 100, 150, 0, False, True)
  1337.             Call Create_Enemy(25, 11, 1360, 0, 86, 40, 50, 50, 1, False, False)
  1338.         Case 530:
  1339.             Call Create_Enemy(25, 11, 1560, 0, 86, 40, 50, 50, 1, False, False)
  1340.         Case 560:
  1341.             Call Create_Enemy(25, 11, 1760, 0, 86, 40, 50, 50, 1, False, False)
  1342.         Case 600:
  1343.             Call Create_Enemy(21, 11, 1660, 0, 88, 25, 100, 150, 0, False, True)
  1344.         Case 610:
  1345.             Call Create_Enemy(22, 11, 2760, 0, 88, 35, 100, 100, 1, False, False)
  1346.             Call Create_Enemy(22, 11, 3760, 0, 88, 35, 100, 100, 1, False, False)
  1347.         Case 700:
  1348.             Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 2, False, False)
  1349.         Case 730:
  1350.             Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 3, False, False)
  1351.         Case 760:
  1352.             Call Create_Enemy(25, 11, 4960, 0, 88, 70, 60, 50, 4, False, False)
  1353.         Case 860:
  1354.             Call Create_Enemy(25, 11, 2060, 0, 88, 30, 40, 50, 1, False, False)
  1355.             Call Create_Enemy(25, 11, 4060, 0, 88, 30, 40, 50, 1, False, False)
  1356.         Case 880:
  1357.             Call Create_Enemy(25, 11, 1060, 0, 88, 30, 40, 50, 1, False, False)
  1358.             Call Create_Enemy(25, 11, 5060, 0, 88, 30, 40, 50, 1, False, False)
  1359.         Case 900:
  1360.             Call Create_Enemy(21, 11, 3060, 0, 88, 35, 100, 150, 0, False, True)
  1361.         Case 980:
  1362.             Call Create_Enemy(22, 11, 1760, 0, 88, 35, 100, 100, 6, False, False)
  1363.         Case 1010:
  1364.             Call Create_Enemy(22, 11, 4760, 0, 88, 35, 100, 100, 6, False, False)
  1365.         Case 1040:
  1366.             Call Create_Enemy(22, 11, 4760, 0, 88, 35, 100, 100, 6, False, False)
  1367.         Case 1100:
  1368.             Call Create_Enemy(22, 11, 5060, 0, 81, 35, 100, 100, 1, False, False)
  1369.         Case 1130:
  1370.             Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
  1371.             Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
  1372.         Case 1160:
  1373.             Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
  1374.             Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
  1375.         Case 1130:
  1376.             Call Create_Enemy(25, 11, 1160, 0, 86, 40, 40, 50, 1, False, False)
  1377.             Call Create_Enemy(25, 11, 4860, 0, 84, 40, 40, 50, 1, False, False)
  1378.         Case 1150:
  1379.             Call Create_Enemy(21, 11, 4860, 0, 88, 35, 100, 150, 0, False, True)
  1380.         Case 1170:
  1381.             Call Send_MSG(" INCOMING ENEMY ", 0, 1)
  1382.         Case 1250:
  1383.             Boss_Name.Caption = "TRANSPORT"
  1384.             Call Create_Enemy(19, 11, 2400, 0, 4646, 40, 1500, 400, 123, True, False)
  1385.         Case Else:
  1386.             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
  1387.                 Select Case (GEC - C_GEC(0))
  1388.                 Case 50:
  1389.                 Call Send_MSG(" Stage 2: Space Debris ", 0, 0)
  1390.                     Call Create_Enemy(25, 11, 1200, 0, 821, 100, 60, 75, 2, False, False)
  1391.                     Call Create_Enemy(25, 11, 1700, 0, 821, 100, 60, 75, 2, False, False)
  1392.                     Call Create_Enemy(25, 11, 2200, 0, 821, 100, 60, 75, 2, False, False)
  1393.                 Case 80:
  1394.                     Call Create_Enemy(25, 11, 2200, 0, 821, 100, 60, 75, 2, False, False)
  1395.                     Call Create_Enemy(25, 11, 2700, 0, 821, 100, 60, 75, 2, False, False)
  1396.                     Call Create_Enemy(25, 11, 3200, 0, 821, 100, 60, 75, 2, False, False)
  1397.                 Case 110:
  1398.                     Call Create_Enemy(25, 11, 3200, 0, 821, 100, 60, 75, 2, False, False)
  1399.                     Call Create_Enemy(25, 11, 3700, 0, 821, 100, 60, 75, 2, False, False)
  1400.                     Call Create_Enemy(25, 11, 4200, 0, 821, 100, 60, 75, 2, False, False)
  1401.                 Case 120:
  1402.                     Call Create_Enemy(21, 11, 4700, 0, 88, 35, 120, 150, 0, False, True)
  1403.                 Case 140:
  1404.                     Call Create_Enemy(22, 11, 1860, 0, 88, 45, 120, 120, 1, False, False)
  1405.                 Case 150:
  1406.                     Call Create_Enemy(22, 11, 2660, 0, 88, 45, 120, 120, 1, False, False)
  1407.                 Case 180:
  1408.                     Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
  1409.                 Case 190:
  1410.                     Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
  1411.                 Case 200:
  1412.                     Call Create_Enemy(25, 11, 4200, 0, 81, 45, 60, 75, 1, False, False)
  1413.                 Case 230:
  1414.                     'Scyth
  1415.                     Call Create_Enemy(25, 11, 900, 0, 821, 100, 60, 75, 1, False, False)
  1416.                     Call Create_Enemy(25, 11, 1500, 0, 821, 100, 60, 75, 1, False, False)
  1417.                 Case 270:
  1418.                     'Yellow Bubble
  1419.                     Call Create_Enemy(21, 11, 1500, 0, 88, 30, 120, 150, 0, False, True)
  1420.                 Case 280:
  1421.                     'Fat Grey Ship
  1422.                     Call Create_Enemy(20, 12, 4000, 0, 88, 30, 230, 150, 32147, False, False)
  1423.                 Case 300:
  1424.                     Call Create_Enemy(20, 12, 4600, 0, 88, 30, 230, 150, 32147, False, False)
  1425.                 Case 370:
  1426.                     Call Send_MSG(" ALERT! ASTEROID BELT AHEAD! ", 0, 1)
  1427.                 Case 420:
  1428.                     For i = 1 To 5
  1429.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
  1430.                     Next i
  1431.                 Case 470:
  1432.                     For i = 1 To 5
  1433.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
  1434.                     Next i
  1435.                 Case 520:
  1436.                     For i = 1 To 5
  1437.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 20, Rnd * 10 + 10, 10, 0, False, False)
  1438.                     Next i
  1439.                 Case 570:
  1440.                     For i = 1 To 5
  1441.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
  1442.                     Next i
  1443.                 Case 620:
  1444.                     For i = 1 To 5
  1445.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
  1446.                     Next i
  1447.                 Case 670:
  1448.                     For i = 1 To 5
  1449.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 30, Rnd * 20 + 10, 10, 0, False, False)
  1450.                     Next i
  1451.                 Case 720:
  1452.                     For i = 1 To 8
  1453.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 40, Rnd * 20 + 20, 15, 0, False, False)
  1454.                     Next i
  1455.                 Case 770:
  1456.                     For i = 1 To 8
  1457.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 40, Rnd * 20 + 20, 15, 0, False, False)
  1458.                     Next i
  1459.                 Case 780:
  1460.                     Call Send_MSG("> Command Base: It's going to get rough! ", 0, 0)
  1461.                 Case 820:
  1462.                     For i = 1 To 8
  1463.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
  1464.                     Next i
  1465.                 Case 860:
  1466.                     For i = 1 To 8
  1467.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
  1468.                     Next i
  1469.                 Case 900:
  1470.                     For i = 1 To 8
  1471.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 50, Rnd * 20 + 30, 15, 0, False, False)
  1472.                     Next i
  1473.                 Case 940:
  1474.                     For i = 1 To 8
  1475.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1476.                     Next i
  1477.                 Case 980:
  1478.                     For i = 1 To 8
  1479.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1480.                     Next i
  1481.                 Case 1020:
  1482.                     For i = 1 To 8
  1483.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1484.                     Next i
  1485.                 Case 1150:
  1486.                     Call Send_MSG("> Command Base: HailStorm!! ", 0, 0)
  1487.                 Case 1170:
  1488.                     For i = 1 To 10
  1489.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1490.                     Next i
  1491.                 Case 1190:
  1492.                     For i = 1 To 10
  1493.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1494.                     Next i
  1495.                 Case 1210:
  1496.                     For i = 1 To 10
  1497.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1498.                     Next i
  1499.                 Case 1220:
  1500.                     For i = 1 To 10
  1501.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1502.                     Next i
  1503.                 Case 1230:
  1504.                     For i = 1 To 10
  1505.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1506.                     Next i
  1507.                 Case 1240:
  1508.                     For i = 1 To 10
  1509.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1510.                     Next i
  1511.                 Case 1250:
  1512.                     For i = 1 To 10
  1513.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1514.                     Next i
  1515.                 Case 1260:
  1516.                     For i = 1 To 10
  1517.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1518.                     Next i
  1519.                 Case 1270:
  1520.                     For i = 1 To 10
  1521.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1522.                     Next i
  1523.                 Case 1280:
  1524.                     For i = 1 To 10
  1525.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1526.                     Next i
  1527.                 Case 1290:
  1528.                     For i = 1 To 10
  1529.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1530.                     Next i
  1531.                 Case 1300:
  1532.                     For i = 1 To 10
  1533.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1534.                     Next i
  1535.                 Case 1310:
  1536.                     For i = 1 To 10
  1537.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1538.                     Next i
  1539.                 Case 1320:
  1540.                     For i = 1 To 10
  1541.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1542.                     Next i
  1543.                 Case 1330:
  1544.                     For i = 1 To 10
  1545.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1546.                     Next i
  1547.                 Case 1340:
  1548.                     For i = 1 To 10
  1549.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1550.                     Next i
  1551.                 Case 1350:
  1552.                     For i = 1 To 10
  1553.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1554.                     Next i
  1555.                 Case 1360:
  1556.                     For i = 1 To 10
  1557.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1558.                     Next i
  1559.                 Case 1370:
  1560.                     For i = 1 To 10
  1561.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 40 + 80, Rnd * 20 + 60, 30, 0, False, False)
  1562.                     Next i
  1563.                 Case 1420:
  1564.                     Boss_Name.Caption = "GRANITE"
  1565.                     Call Create_Enemy(23, 11, 3050, 0, 3311, 80, 4500, 1700, 999, True, False)
  1566.                 End Select
  1567.             End If
  1568.             
  1569.             If C_GEC(1) > 1 And C_GEC(2) = 0 And C_GEC(3) = 0 And C_GEC(4) = 0 Then
  1570.                 Select Case (GEC - C_GEC(1))
  1571.                 Case 60:
  1572.                     Call Send_MSG(" Stage 3: The Big Gift ", 0, 0)
  1573.                     'Yellow Bubble
  1574.                     Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
  1575.                     Call Create_Enemy(21, 11, 3500, 0, 88, 30, 160, 180, 0, False, True)
  1576.                 Case 80:
  1577.                     'Army Type
  1578.                     Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
  1579.                 Case 100:
  1580.                     Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
  1581.                 Case 120:
  1582.                     Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
  1583.                 Case 140:
  1584.                     Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
  1585.                 Case 160:
  1586.                     Call Create_Enemy(22, 11, 1000, 0, 88, 55, 200, 160, 16, False, False)
  1587.                 Case 180:
  1588.                     Call Create_Enemy(22, 11, 5000, 0, 88, 55, 200, 160, 9, False, False)
  1589.                 Case 210:
  1590.                     'Fat Grey Ship
  1591.                     Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
  1592.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  1593.                 Case 240:
  1594.                     Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
  1595.                 Case 250:
  1596.                     Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
  1597.                 Case 260:
  1598.                     Call Create_Enemy(25, 11, 900, 0, 86, 70, 150, 100, 1, False, False)
  1599.                 Case 270:
  1600.                     Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
  1601.                 Case 280:
  1602.                     Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
  1603.                 Case 290:
  1604.                     Call Create_Enemy(25, 11, 5000, 0, 84, 70, 150, 100, 1, False, False)
  1605.                 Case 340:
  1606.                     Call Create_Enemy(21, 11, 900, 0, 88, 30, 160, 180, 0, False, True)
  1607.                     Call Create_Enemy(21, 11, 4900, 0, 88, 30, 160, 180, 0, False, True)
  1608.                 Case 360:
  1609.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1610.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1611.                 Case 390:
  1612.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1613.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1614.                 Case 420:
  1615.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1616.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1617.                 Case 450:
  1618.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1619.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1620.                 Case 480:
  1621.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1622.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1623.                 Case 510:
  1624.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1625.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1626.                 Case 540:
  1627.                     Call Create_Enemy(22, 11, 1800, 0, 88, 50, 250, 190, (Rnd * 6 + 3), False, False)
  1628.                     Call Create_Enemy(22, 11, 3000, 0, 88, 50, 250, 190, (Rnd * 6 + 10), False, False)
  1629.                 Case 610:
  1630.                     Call Create_Enemy(21, 11, 4500, 0, 88, 50, 160, 180, 0, False, True)
  1631.                 Case 630:
  1632.                     Call Create_Enemy(21, 11, 4500, 0, 88, 50, 160, 180, 0, False, True)
  1633.                 Case 660:
  1634.                     Call Create_Enemy(22, 11, 800, 0, 821, 9, 200, 160, 2, False, False)
  1635.                 Case 680:
  1636.                     Call Create_Enemy(22, 11, 1600, 0, 821, 9, 200, 160, 2, False, False)
  1637.                 Case 700:
  1638.                     Call Create_Enemy(22, 11, 2400, 0, 821, 9, 200, 160, 2, False, False)
  1639.                 Case 720:
  1640.                     Call Create_Enemy(22, 11, 3200, 0, 821, 9, 200, 160, 2, False, False)
  1641.                 Case 740:
  1642.                     Call Create_Enemy(22, 11, 4000, 0, 821, 9, 200, 160, 2, False, False)
  1643.                 Case 760:
  1644.                     Call Create_Enemy(22, 11, 4800, 0, 821, 9, 200, 160, 2, False, False)
  1645.                 Case 780:
  1646.                     Call Send_MSG("> Command Base: We've got Weird readings ahead ... ", 0, 0)
  1647.                 Case 800:
  1648.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  1649.                 Case 860:
  1650.                     Call Send_MSG(" INCOMING ENEMY ", 0, 1)
  1651.                 Case 900:
  1652.                     Call Create_Enemy(21, 11, 9000, 0, 88, 30, 160, 180, 0, False, True)
  1653.                     Call Create_Enemy(21, 11, 4700, 0, 88, 30, 160, 180, 0, False, True)
  1654.                 Case 950:   'Mother bubble
  1655.                     Boss_Name.Caption = "GIANT POD"
  1656.                     Call Create_Enemy(31, 21, 2550, 0, 2288, 100, 7500, 3000, 12321, True, True)
  1657.                 End Select
  1658.             End If
  1659.             
  1660.             If C_GEC(2) > 1 And C_GEC(3) = 0 And C_GEC(4) = 0 Then
  1661.                 Select Case (GEC - C_GEC(2))
  1662.                 Case 20:
  1663.                     Call Send_MSG(" Stage 4: Barricade of Doom ", 0, 0)
  1664.                     Call Create_Enemy(21, 11, 900, 0, 88, 30, 160, 180, 0, False, True)
  1665.                     Call Create_Enemy(21, 11, 1800, 0, 88, 30, 160, 180, 0, False, True)
  1666.                 Case 100:
  1667.                     'Scyth Squadron
  1668.                     Call Send_MSG("> Command base: Scyth Squadron coming ahead ! ", 0, 0)
  1669.                     Call Create_Enemy(25, 11, 900, 0, 88, 90, 90, 60, 1, False, False)
  1670.                 Case 105:
  1671.                     Call Create_Enemy(25, 11, 1400, 0, 88, 90, 90, 60, 1, False, False)
  1672.                 Case 110:
  1673.                     Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
  1674.                 Case 115:
  1675.                     Call Create_Enemy(25, 11, 4000, 0, 88, 90, 90, 60, 1, False, False)
  1676.                 Case 120:
  1677.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
  1678.                 Case 125:
  1679.                     Call Create_Enemy(25, 11, 3900, 0, 88, 90, 90, 60, 1, False, False)
  1680.                 Case 130:
  1681.                     Call Create_Enemy(25, 11, 2600, 0, 88, 90, 90, 60, 1, False, False)
  1682.                 Case 135:
  1683.                     Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
  1684.                 Case 140:
  1685.                     Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
  1686.                 Case 145:
  1687.                     Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
  1688.                 Case 150:
  1689.                     Call Create_Enemy(25, 11, 2600, 0, 88, 90, 90, 60, 1, False, False)
  1690.                 Case 155:
  1691.                     Call Create_Enemy(25, 11, 3500, 0, 88, 90, 90, 60, 1, False, False)
  1692.                 Case 160:
  1693.                     Call Create_Enemy(25, 11, 1600, 0, 88, 90, 90, 60, 1, False, False)
  1694.                 Case 165:
  1695.                     Call Create_Enemy(25, 11, 2900, 0, 88, 90, 90, 60, 1, False, False)
  1696.                 Case 170:
  1697.                     Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
  1698.                 Case 175:
  1699.                     Call Create_Enemy(25, 11, 4000, 0, 88, 90, 90, 60, 1, False, False)
  1700.                 Case 180:
  1701.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
  1702.                 Case 185:
  1703.                     Call Create_Enemy(25, 11, 2000, 0, 88, 90, 90, 60, 1, False, False)
  1704.                 Case 190:
  1705.                     Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
  1706.                 Case 195:
  1707.                     Call Create_Enemy(25, 11, 3500, 0, 88, 90, 90, 60, 1, False, False)
  1708.                 Case 200:
  1709.                     Call Create_Enemy(25, 11, 2300, 0, 88, 90, 90, 60, 1, False, False)
  1710.                 Case 205:
  1711.                     Call Create_Enemy(25, 11, 3300, 0, 88, 90, 90, 60, 1, False, False)
  1712.                 Case 225:
  1713.                     Call Create_Enemy(21, 11, 4800, 0, 88, 30, 160, 180, 0, False, True)
  1714.                 Case 250:
  1715.                     Call Send_MSG("> Command base: More Scyths Detected ! ", 0, 0)
  1716.                 Case 305:
  1717.                     Call Create_Enemy(25, 11, 1200, 0, 88, 90, 90, 60, 1, False, False)
  1718.                 Case 310:
  1719.                     Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
  1720.                 Case 315:
  1721.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
  1722.                 Case 320:
  1723.                     Call Create_Enemy(25, 11, 2000, 0, 88, 90, 90, 60, 1, False, False)
  1724.                 Case 325:
  1725.                     Call Create_Enemy(25, 11, 2900, 0, 88, 90, 90, 60, 1, False, False)
  1726.                 Case 330:
  1727.                     Call Create_Enemy(25, 11, 3600, 0, 88, 90, 90, 60, 1, False, False)
  1728.                 Case 335:
  1729.                     Call Create_Enemy(25, 11, 1000, 0, 88, 90, 90, 60, 1, False, False)
  1730.                 Case 340:
  1731.                     Call Create_Enemy(25, 11, 1800, 0, 88, 90, 90, 60, 1, False, False)
  1732.                 Case 345:
  1733.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
  1734.                 Case 350:
  1735.                     Call Create_Enemy(25, 11, 3900, 0, 88, 90, 90, 60, 1, False, False)
  1736.                 Case 355:
  1737.                     Call Create_Enemy(25, 11, 2200, 0, 88, 90, 90, 60, 1, False, False)
  1738.                 Case 360:
  1739.                     Call Create_Enemy(25, 11, 4400, 0, 88, 90, 90, 60, 1, False, False)
  1740.                 Case 365:
  1741.                     Call Create_Enemy(25, 11, 3300, 0, 88, 90, 90, 60, 1, False, False)
  1742.                 Case 370:
  1743.                     Call Create_Enemy(25, 11, 1100, 0, 88, 90, 90, 60, 1, False, False)
  1744.                 Case 375:
  1745.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 90, 60, 1, False, False)
  1746.                 Case 380:
  1747.                     Call Create_Enemy(25, 11, 2700, 0, 88, 90, 90, 60, 1, False, False)
  1748.                 Case 385:
  1749.                     Call Create_Enemy(25, 11, 800, 0, 88, 90, 90, 60, 1, False, False)
  1750.                 Case 390:
  1751.                     Call Create_Enemy(25, 11, 3800, 0, 88, 90, 90, 60, 1, False, False)
  1752.                 Case 395:
  1753.                     Call Create_Enemy(25, 11, 4700, 0, 88, 90, 90, 60, 1, False, False)
  1754.                 Case 410:
  1755.                     Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
  1756.                     Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
  1757.                     Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
  1758.                     Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
  1759.                     Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
  1760.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1761.                     Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
  1762.                     Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
  1763.                     Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
  1764.                     Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
  1765.                 Case 410:
  1766.                     Call Create_Enemy(25, 11, 2100, 0, 88, 90, 120, 80, 1, False, False)
  1767.                     Call Create_Enemy(25, 11, 2400, 0, 88, 90, 120, 80, 1, False, False)
  1768.                     Call Create_Enemy(25, 11, 2700, 0, 88, 90, 120, 80, 1, False, False)
  1769.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 120, 80, 1, False, False)
  1770.                     Call Create_Enemy(25, 11, 3300, 0, 88, 90, 120, 80, 1, False, False)
  1771.                 Case 450:
  1772.                     Call Create_Enemy(25, 11, 1500, 0, 88, 90, 120, 80, 1, False, False)
  1773.                     Call Create_Enemy(25, 11, 1800, 0, 88, 90, 120, 80, 1, False, False)
  1774.                     Call Create_Enemy(25, 11, 2100, 0, 88, 90, 120, 80, 1, False, False)
  1775.                     Call Create_Enemy(25, 11, 2400, 0, 88, 90, 120, 80, 1, False, False)
  1776.                     Call Create_Enemy(25, 11, 2700, 0, 88, 90, 120, 80, 1, False, False)
  1777.                     Call Create_Enemy(25, 11, 3000, 0, 88, 90, 120, 80, 1, False, False)
  1778.                     Call Create_Enemy(25, 11, 3300, 0, 88, 90, 120, 80, 1, False, False)
  1779.                     Call Create_Enemy(25, 11, 3600, 0, 88, 90, 120, 80, 1, False, False)
  1780.                     Call Create_Enemy(25, 11, 3900, 0, 88, 90, 120, 80, 1, False, False)
  1781.                     Call Create_Enemy(25, 11, 4200, 0, 88, 90, 120, 80, 1, False, False)
  1782.                 Case 480:
  1783.                     Call Create_Enemy(21, 11, 2500, 0, 88, 30, 160, 180, 0, False, True)
  1784.                 Case 510:
  1785.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1786.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1787.                 Case 520:
  1788.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1789.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1790.                 Case 530:
  1791.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1792.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1793.                 Case 540:
  1794.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1795.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1796.                 Case 550:
  1797.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1798.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1799.                 Case 560:
  1800.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1801.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1802.                 Case 570:
  1803.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1804.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1805.                 Case 580:
  1806.                     Call Create_Enemy(25, 11, 900, 0, 86, 90, 120, 80, 1, False, False)
  1807.                     Call Create_Enemy(25, 11, 4700, 0, 84, 90, 120, 80, 1, False, False)
  1808.                 Case 740:
  1809.                     Call Create_Enemy(19, 21, 1600, 100, 555, 30, 800, 600, 123, False, False)
  1810.                 Case 880:
  1811.                     Call Create_Enemy(19, 21, 3100, 100, 555, 30, 800, 600, 123, False, False)
  1812.                 Case 1000:
  1813.                     Call Send_MSG("> Command Base: Barricade ahead ! ", 0, 0)
  1814.                 Case 1080:
  1815.                     Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
  1816.                     Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
  1817.                     Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
  1818.                     Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
  1819.                     Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
  1820.                     Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
  1821.                     Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
  1822.                     Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
  1823.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1824.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1825.                     Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
  1826.                     Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
  1827.                     Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
  1828.                     Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
  1829.                 Case 1160:
  1830.                     Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
  1831.                     Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
  1832.                     Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
  1833.                     Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
  1834.                     Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
  1835.                     Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
  1836.                     Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
  1837.                     Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
  1838.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1839.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1840.                     Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
  1841.                     Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
  1842.                     Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
  1843.                     Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
  1844.                 Case 1220:
  1845.                     Call Create_Enemy(25, 11, 900, 10, 88, 90, 120, 80, 1, False, False)
  1846.                     Call Create_Enemy(25, 11, 1200, 10, 88, 90, 120, 80, 1, False, False)
  1847.                     Call Create_Enemy(25, 11, 1500, 10, 88, 90, 120, 80, 1, False, False)
  1848.                     Call Create_Enemy(25, 11, 1800, 10, 88, 90, 120, 80, 1, False, False)
  1849.                     Call Create_Enemy(25, 11, 2100, 10, 88, 90, 120, 80, 1, False, False)
  1850.                     Call Create_Enemy(25, 11, 2400, 10, 88, 90, 120, 80, 1, False, False)
  1851.                     Call Create_Enemy(25, 11, 2700, 10, 88, 90, 120, 80, 1, False, False)
  1852.                     Call Create_Enemy(25, 11, 3000, 10, 88, 90, 120, 80, 1, False, False)
  1853.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1854.                     Call Create_Enemy(25, 11, 3600, 10, 88, 90, 120, 80, 1, False, False)
  1855.                     Call Create_Enemy(25, 11, 3900, 10, 88, 90, 120, 80, 1, False, False)
  1856.                     Call Create_Enemy(25, 11, 4200, 10, 88, 90, 120, 80, 1, False, False)
  1857.                     Call Create_Enemy(25, 11, 4500, 10, 88, 90, 120, 80, 1, False, False)
  1858.                     Call Create_Enemy(25, 11, 4800, 10, 88, 90, 120, 80, 1, False, False)
  1859.                 Case 1260:
  1860.                     Call Create_Enemy(21, 11, 1000, 0, 88, 30, 160, 180, 0, False, True)
  1861.                     Call Send_MSG(" INCOMING ENEMY ", 0, 1)
  1862.                 Case 1330:      'Mother Scyth
  1863.                     Boss_Name.Caption = "SCYTH LORD"
  1864.                     Call Create_Enemy(24, 22, 2000, 0, 7979, 250, 12500, 4500, 3333, True, False)
  1865.                 End Select
  1866.             End If
  1867.             
  1868.             If C_GEC(3) > 1 And C_GEC(4) = 0 Then
  1869.                 Select Case (GEC - C_GEC(3))
  1870.                 Case 60:
  1871.                 Call Send_MSG(" Final Stage: The Chaotic End ", 0, 0)
  1872.                 Case 130:
  1873.                     Call Send_MSG(" > Command Base: Becareful, Black Winter ", 0, 0)
  1874.                 Case 160:
  1875.                     'ARMY TYPE
  1876.                     Call Create_Enemy(22, 11, 1300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  1877.                 Case 170:
  1878.                     Call Create_Enemy(22, 11, 1200, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  1879.                 Case 180:
  1880.                     Call Create_Enemy(22, 11, 1100, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  1881.                 Case 190:
  1882.                     Call Create_Enemy(22, 11, 1000, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  1883.                 Case 200:
  1884.                     Call Create_Enemy(22, 11, 900, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  1885.                 Case 250:
  1886.                     'Fat Grey Ship
  1887.                     Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
  1888.                     Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
  1889.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  1890.                 Case 320:
  1891.                     'Fat Grey Ship
  1892.                     Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
  1893.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  1894.                 Case 390:
  1895.                     Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2000, 800, 123, False, False)
  1896.                 Case 440:
  1897.                     For i = 1 To 8
  1898.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1899.                     Next i
  1900.                 Case 470:
  1901.                     For i = 1 To 8
  1902.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1903.                     Next i
  1904.                 Case 490:
  1905.                     'Fat Grey Ship
  1906.                     Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
  1907.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  1908.                 Case 520:
  1909.                     For i = 1 To 8
  1910.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1911.                     Next i
  1912.                 Case 530:
  1913.                     For i = 1 To 8
  1914.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1915.                     Next i
  1916.                 Case 540:
  1917.                     For i = 1 To 8
  1918.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1919.                     Next i
  1920.                 Case 570:
  1921.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1922.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1923.                 Case 580:
  1924.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1925.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1926.                 Case 590:
  1927.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1928.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 2, False, False)
  1929.                 Case 600:
  1930.                     Call Create_Enemy(25, 11, 1000, 0, 88, 80, 140, 90, 2, False, False)
  1931.                     Call Create_Enemy(25, 11, 5000, 0, 88, 80, 140, 90, 2, False, False)
  1932.                 Case 610:
  1933.                     Call Create_Enemy(25, 11, 1200, 0, 88, 80, 140, 90, 2, False, False)
  1934.                     Call Create_Enemy(25, 11, 4800, 0, 88, 80, 140, 90, 2, False, False)
  1935.                     For i = 1 To 8
  1936.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1937.                     Next i
  1938.                 Case 615:
  1939.                     Call Create_Enemy(25, 11, 1300, 0, 88, 80, 140, 90, 2, False, False)
  1940.                     Call Create_Enemy(25, 11, 4700, 0, 88, 80, 140, 90, 2, False, False)
  1941.                 Case 620:
  1942.                     Call Create_Enemy(21, 11, 2400, 0, 88, 30, 160, 180, 0, False, True)
  1943.                     Call Create_Enemy(25, 11, 1400, 0, 88, 80, 140, 90, 2, False, False)
  1944.                     Call Create_Enemy(25, 11, 4600, 0, 88, 80, 140, 90, 2, False, False)
  1945.                 Case 630:
  1946.                     Call Create_Enemy(25, 11, 1500, 0, 88, 80, 140, 90, 2, False, False)
  1947.                     Call Create_Enemy(25, 11, 4500, 0, 88, 80, 140, 90, 2, False, False)
  1948.                 Case 640:
  1949.                     Call Create_Enemy(25, 11, 1600, 0, 88, 80, 140, 90, 2, False, False)
  1950.                     Call Create_Enemy(25, 11, 4400, 0, 88, 80, 140, 90, 2, False, False)
  1951.                 Case 650:
  1952.                     For i = 1 To 8
  1953.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1954.                     Next i
  1955.                     Call Create_Enemy(25, 11, 1700, 0, 88, 80, 140, 90, 2, False, False)
  1956.                     Call Create_Enemy(25, 11, 4300, 0, 88, 80, 140, 90, 2, False, False)
  1957.                 Case 660:
  1958.                     Call Create_Enemy(25, 11, 1800, 0, 88, 80, 140, 90, 2, False, False)
  1959.                     Call Create_Enemy(25, 11, 4200, 0, 88, 80, 140, 90, 2, False, False)
  1960.                 Case 670:
  1961.                     Call Create_Enemy(25, 11, 1900, 0, 88, 80, 140, 90, 2, False, False)
  1962.                     Call Create_Enemy(25, 11, 4100, 0, 88, 80, 140, 90, 2, False, False)
  1963.                 Case 680:
  1964.                     Call Create_Enemy(25, 11, 2000, 0, 88, 80, 140, 90, 2, False, False)
  1965.                     Call Create_Enemy(25, 11, 4000, 0, 88, 80, 140, 90, 2, False, False)
  1966.                 Case 690:
  1967.                     For i = 1 To 8
  1968.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1969.                     Next i
  1970.                     Call Create_Enemy(25, 11, 2100, 0, 88, 80, 140, 90, 2, False, False)
  1971.                     Call Create_Enemy(25, 11, 3900, 0, 88, 80, 140, 90, 2, False, False)
  1972.                 Case 700:
  1973.                     Call Create_Enemy(25, 11, 2200, 0, 88, 80, 140, 90, 2, False, False)
  1974.                     Call Create_Enemy(25, 11, 3800, 0, 88, 80, 140, 90, 2, False, False)
  1975.                 Case 710:
  1976.                     For i = 1 To 8
  1977.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1978.                     Next i
  1979.                     Call Create_Enemy(25, 11, 2300, 0, 88, 80, 140, 90, 2, False, False)
  1980.                     Call Create_Enemy(25, 11, 3700, 0, 88, 80, 140, 90, 2, False, False)
  1981.                 Case 720:
  1982.                     Call Create_Enemy(25, 11, 2400, 0, 88, 80, 140, 90, 2, False, False)
  1983.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  1984.                 Case 730:
  1985.                     For i = 1 To 8
  1986.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1987.                     Next i
  1988.                     Call Create_Enemy(25, 11, 2500, 0, 88, 80, 140, 90, 2, False, False)
  1989.                     Call Create_Enemy(25, 11, 3500, 0, 88, 80, 140, 90, 2, False, False)
  1990.                 Case 740:
  1991.                     Call Create_Enemy(25, 11, 2600, 0, 88, 80, 140, 90, 2, False, False)
  1992.                     Call Create_Enemy(25, 11, 3400, 0, 88, 80, 140, 90, 2, False, False)
  1993.                 Case 750:
  1994.                     For i = 1 To 8
  1995.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  1996.                     Next i
  1997.                     Call Create_Enemy(25, 11, 2700, 0, 88, 80, 140, 90, 2, False, False)
  1998.                     Call Create_Enemy(25, 11, 2900, 0, 88, 80, 140, 90, 2, False, False)
  1999.                     Call Create_Enemy(25, 11, 3100, 0, 88, 80, 140, 90, 2, False, False)
  2000.                     Call Create_Enemy(25, 11, 3300, 0, 88, 80, 140, 90, 2, False, False)
  2001.                 Case 770:
  2002.                     For i = 1 To 8
  2003.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2004.                     Next i
  2005.                 Case 775:
  2006.                     For i = 1 To 8
  2007.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2008.                     Next i
  2009.                 Case 780:
  2010.                     For i = 1 To 8
  2011.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2012.                     Next i
  2013.                 Case 785:
  2014.                     For i = 1 To 8
  2015.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2016.                     Next i
  2017.                 Case 810:
  2018.                     For i = 1 To 8
  2019.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2020.                     Next i
  2021.                 Case 815:
  2022.                     For i = 1 To 8
  2023.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2024.                     Next i
  2025.                 Case 820:
  2026.                     For i = 1 To 8
  2027.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2028.                     Next i
  2029.                 Case 825:
  2030.                     For i = 1 To 8
  2031.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2032.                     Next i
  2033.                 Case 830:
  2034.                     Call Create_Enemy(22, 11, 1300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  2035.                     Call Create_Enemy(22, 11, 2300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  2036.                     Call Create_Enemy(22, 11, 3300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  2037.                     Call Create_Enemy(22, 11, 4300, 0, 83, 65, 220, 170, (Rnd * 13 + 3), False, False)
  2038.                 Case 880:
  2039.                     Call Create_Enemy(21, 11, 1000, 0, 88, 30, 160, 180, 0, False, True)
  2040.                     For i = 1 To 8
  2041.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2042.                     Next i
  2043.                 Case 920:
  2044.                     For i = 1 To 8
  2045.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2046.                     Next i
  2047.                 Case 940:
  2048.                     For i = 1 To 8
  2049.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2050.                     Next i
  2051.                 
  2052.                 Case 960:
  2053.                     Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
  2054.                 Case 970:
  2055.                     For i = 1 To 8
  2056.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2057.                     Next i
  2058.                 Case 990:
  2059.                     For i = 1 To 8
  2060.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2061.                     Next i
  2062.                 Case 1000:
  2063.                     Call Create_Enemy(19, 21, 2600, 100, 555, 30, 2200, 800, 123, False, False)
  2064.                     For i = 1 To 8
  2065.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2066.                     Next i
  2067.                 Case 1030:
  2068.                     Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
  2069.                 Case 1070:
  2070.                     Call Create_Enemy(19, 21, 2600, 100, 555, 30, 2200, 800, 123, False, False)
  2071.                 Case 1090:
  2072.                     Call Create_Enemy(19, 21, 1600, 100, 555, 30, 2200, 800, 123, False, False)
  2073.                 Case 1150:
  2074.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  2075.                     For i = 1 To 8
  2076.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2077.                     Next i
  2078.                 Case 1160:
  2079.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  2080.                 Case 1170:
  2081.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  2082.                     For i = 1 To 8
  2083.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2084.                     Next i
  2085.                 Case 1180:
  2086.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  2087.                 Case 1190:
  2088.                     Call Create_Enemy(25, 11, 3600, 0, 88, 80, 140, 90, 2, False, False)
  2089.                     For i = 1 To 8
  2090.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2091.                     Next i
  2092.                 Case 1290:
  2093.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2094.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2095.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2096.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2097.                     For i = 1 To 8
  2098.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2099.                     Next i
  2100.                 Case 1300:
  2101.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2102.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2103.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2104.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2105.                     For i = 1 To 8
  2106.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2107.                     Next i
  2108.                 Case 1310:
  2109.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2110.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2111.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2112.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2113.                     For i = 1 To 8
  2114.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2115.                     Next i
  2116.                 Case 1320:
  2117.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2118.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2119.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2120.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2121.                     For i = 1 To 8
  2122.                         Call Create_Enemy(Rnd * 2 + 28, Rnd * 4, Rnd * 4820 + 820, 0, 31313, Rnd * 30 + 60, Rnd * 20 + 40, 15, 0, False, False)
  2123.                     Next i
  2124.                 Case 1330:
  2125.                     'Fat Grey Ship
  2126.                     Call Create_Enemy(21, 11, 2800, 0, 88, 30, 160, 180, 0, False, True)
  2127.                     Call Create_Enemy(20, 12, 4800, 0, 88, 30, 250, 170, 32147, False, False)
  2128.                     Call Create_Enemy(20, 12, 1100, 0, 88, 30, 250, 170, 12369, False, False)
  2129.                 Case 1380:
  2130.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2131.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2132.                 Case 1390:
  2133.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2134.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2135.                 Case 1400:
  2136.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2137.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2138.                 Case 1410:
  2139.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2140.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2141.                 Case 1420:
  2142.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2143.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2144.                 Case 1430:
  2145.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2146.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2147.                 Case 1440:
  2148.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2149.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2150.                 Case 1450:
  2151.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2152.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2153.                 Case 1460:
  2154.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2155.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2156.                 Case 1470:
  2157.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2158.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2159.                 Case 1480:
  2160.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2161.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2162.                 Case 1490:
  2163.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2164.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2165.                 Case 1500:
  2166.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2167.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2168.                 Case 1510:
  2169.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2170.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2171.                 Case 1520:
  2172.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2173.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2174.                 Case 1530:
  2175.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2176.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2177.                 Case 1540:
  2178.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2179.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2180.                 Case 1550:
  2181.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2182.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2183.                 Case 1555:
  2184.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2185.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2186.                 Case 1560:
  2187.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2188.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2189.                 Case 1565:
  2190.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2191.                     Call Create_Enemy(25, 11, (Rnd * 3800 + 800), 0, 88, 80, 140, 90, 1, False, False)
  2192.                 
  2193.                 Case 1570:
  2194.                     Call Send_MSG(" ALERT! INCOMING MOTHERSHIP ! ", 0, 1)
  2195.                 Case 1650:
  2196.                     Boss_Name.Caption = "BLACK DISC"
  2197.                     Call Create_Enemy(18, 22, 2400, 0, 17931, 100, 15000, 8000, 666, True, False)
  2198.                 End Select
  2199.             End If
  2200.             
  2201.             If C_GEC(4) > 1 Then
  2202.                 Select Case (GEC - C_GEC(4))
  2203.                 Case 1:
  2204.                     KilledBoss = True
  2205.                     Call Check_Score
  2206.                     GEC = -400
  2207.                 End Select
  2208.             End If
  2209.             
  2210.     End Select
  2211. End Sub
  2212. Private Sub Check_Fire(Fire_Pattern As Integer, i As Integer)
  2213. 'The firing patterns of the bullets
  2214.     Select Case (Fire_Pattern)
  2215.     Case 1: 'Homing
  2216.         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)
  2217.     Case 2: 'Down
  2218.         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)
  2219.     Case 3: 'Diagonal Left 1
  2220.         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)
  2221.     Case 4: 'Diagonal Left 2
  2222.         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)
  2223.     Case 5: 'Diagonal Left 3
  2224.         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)
  2225.     Case 6: 'Diagonal Left 4
  2226.         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)
  2227.     Case 7: 'Diagonal Left 5
  2228.         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)
  2229.     Case 8: 'Diagonal Left 6
  2230.         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)
  2231.     Case 9: 'Left
  2232.         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))
  2233.     Case 10: 'Diagonal Right 1
  2234.         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)
  2235.     Case 11: 'Diagonal Right 2
  2236.         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)
  2237.     Case 12: 'Diagonal Right 3
  2238.         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)
  2239.     Case 13: 'Diagonal Right 4
  2240.         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)
  2241.     Case 14: 'Diagonal Right 5
  2242.         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)
  2243.     Case 15: 'Diagonal Right 6
  2244.         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)
  2245.     Case 16: 'Right
  2246.         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))
  2247.     Case 17:
  2248.         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)
  2249.     Case 18:
  2250.         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)
  2251.     Case 19:
  2252.         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)
  2253.     End Select
  2254. End Sub
  2255. 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)
  2256. 'Creates an enemy bullet when called
  2257. 'Parameter list:
  2258. '                   imagelist index for bullet
  2259. '                   starting X coord
  2260. '                   starting Y coord
  2261. '                   bullet speed
  2262. '                   direction of the bullet
  2263. '                   ending X coord
  2264. '                   ending Y coord
  2265. Dim i As Integer
  2266. If GEC > 0 Then
  2267.     For i = 0 To 200
  2268.         If EBull(i).Used = False Then
  2269.             EBull(i).Used = True
  2270.             EBull(i).Kind = Kind
  2271.             EBull(i).StartX = StartX
  2272.             EBull(i).StartY = StartY
  2273.             EBull(i).PosX = StartX
  2274.             EBull(i).PosY = StartY
  2275.             EBull(i).Dire = Direction
  2276.             EBull(i).Spd = Speed
  2277.             EBull(i).DestX = DestinationX
  2278.             EBull(i).DestY = DestinationY
  2279.             Exit For
  2280.         End If
  2281.     Next i
  2282. End If
  2283. End Sub
  2284. 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)
  2285. 'This sub creates and enemy when called and place
  2286. 'it on the play field
  2287. 'Parameter list:    imagelist index for ship sprite
  2288. '                   imagelist index for bullet sprite
  2289. '                   starting X coord
  2290. '                   starting Y coord
  2291. '                   movement pattern
  2292. '                   ship movement speed
  2293. '                   life points
  2294. '                   the amount of score awarded if destroyed
  2295. '                   the pattern of the bullets it fires
  2296. '                   whether it is a boss
  2297. '                   whether is carries bonus
  2298. Dim i As Integer
  2299.     For i = 1 To 40
  2300.         If EShip(i).Used = False Then
  2301.             EShip(i).Used = True
  2302.             EShip(i).Kind = Kind
  2303.             EShip(i).Bul_Kind = Bullet_Kind
  2304.             EShip(i).PosX = StartX
  2305.             EShip(i).PosY = StartY
  2306.             EShip(i).Patt = Pattern
  2307.             EShip(i).Max_Life = Hit_Points
  2308.             EShip(i).Life = Hit_Points
  2309.             EShip(i).Score = Worth
  2310.             EShip(i).Span = 0
  2311.             EShip(i).Frame = 1
  2312.             EShip(i).Spd = Speed
  2313.             EShip(i).Has_Bonus = Bonus
  2314.             EShip(i).Firing_Patt = Firing_Pattern
  2315.             EShip(i).Boss = False
  2316.             
  2317.             'Drop down the boss bar if a boss is created
  2318.             If Boss = True Then
  2319.                 EShip(i).Boss = True
  2320.                 Moving_BossBar = 1
  2321.                 Boss_Bar_Top.Width = Boss_Bar_Bottom.Width
  2322.             End If
  2323.             Exit For
  2324.         End If
  2325.     Next i
  2326. End Sub
  2327. Private Sub Create_Bonus(PosX As Integer, PosY As Integer)
  2328. 'This sub creates a powerup object and allows it to be
  2329. 'placed on the screen based on its called X and Y coord
  2330. Dim i As Integer
  2331.     For i = 0 To 2
  2332.         If PowerUp(i).Used = False Then
  2333.             PowerUp(i).Used = True
  2334.             PowerUp(i).PosX = PosX
  2335.             PowerUp(i).PosY = PosY
  2336.             PowerUp(i).Frame = 1
  2337.             Exit For
  2338.         End If
  2339.     Next i
  2340. End Sub