protected override void UpdateControl(float tpf)
        {
            if (counting)
            {
                respawningTime -= tpf;
                if (respawningTime <= 0)
                {
                    counting = false;
                    me.ToggleControls(true);
                    if (hpControl != null)
                    {
                        hpControl.RefillHp();
                    }

                    me.Visible = true;

                    ModuleDamageControl control = me.GetControlOfType <ModuleDamageControl>() as ModuleDamageControl;
                    if (control == null)
                    {
                        return;
                    }

                    control.Vulnerable = false;
                    me.AddControl(new DelayedActionInvokingControl(2, true, new Action(() => control.Vulnerable = true)));
                }
                else
                {
                    BlinkObject(tpf);
                }
            }
        }
        public virtual void DoCollideWith(ISceneObject other, float tpf)
        {
            if (!CanCollideWithObject(other))
            {
                return;
            }

            if (other is Asteroid)
            {
                bullet.DoRemoveMe();
                if (!bullet.Owner.IsCurrentPlayerOrBot())
                {
                    return;
                }

                HitAsteroid(other as IDestroyable);
                addHitStat();
            }
            else if (other is MiningModule)
            {
                ModuleDamageControl control = other.GetControlOfType <ModuleDamageControl>();
                if (!control.Vulnerable)
                {
                    return;
                }

                (other as IDestroyable).TakeDamage(bullet.Damage, bullet);
                bullet.DoRemoveMe();
                addHitStat();
            }
            else if (other is IDestroyable)
            {
                bullet.DoRemoveMe();
                (other as IDestroyable).TakeDamage(bullet.Damage, bullet);
                bullet.Owner.AddScoreAndShow(ScoreDefines.CANNON_HIT);
                addHitStat();
            }
        }