public override void Update(GameTime gt)
        {
            //remove dead spawners
            for (int i = 0; i < spawners.Count; i++) {
                if (spawners[i].Dead && !spawners[i].Animate && !spawners[i].FocusedWeapon.Hot) {
                    spawners.RemoveAt(i);
                    i--;
                }
            }
            //reset collisions
            foreach (HenrySpawner s in spawners)
                s.CollidedThisFrame = false;
            //update
            foreach (HenrySpawner s in spawners)
                s.Update(gt);

            //update charge time
            if (ChargeStatus == ChargeStatusEnum.Charging)
                chargingTime += (float)gt.ElapsedGameTime.TotalSeconds;

            if (ChargeStatus == ChargeStatusEnum.Charging && (!chargingThisFrame || chargingTime >= chargingTimeMax)) {
                //charging is complete
                SpawnBullets();
                timeSinceLastFired = 0;
                chargingTime = 0;
                ChargeStatus = ChargeStatusEnum.PreCharge;
            }

            //reset charge status
            chargingThisFrame = false;

            base.Update(gt);
        }
 public override void Fire()
 {
     chargingThisFrame = true;
     if (!Ship.Dead && timeSinceLastFired >= 1 / (rateOfFire * Ship.FireRateMultiplier) ) { //I've finished reloading
         if (ChargeStatus == ChargeStatusEnum.PreCharge)
             ChargeStatus = ChargeStatusEnum.Charging; //begin charging
         else if (ChargeStatus == ChargeStatusEnum.Charging) {
             //hmm ... continue charging
         }/* else if (ChargeStatus == ChargeStatusEnum.PostCharge) {
             //done charging... fire!
             SpawnBullets();
             timeSinceLastFired = 0;
             chargingTime = 0;
             ChargeStatus = ChargeStatusEnum.PreCharge;
         }*/
     }
 }