public Ship(Texture2D texture, Vector2 location, SpriteBatch spriteBatch)
: base(texture, location, spriteBatch)
{
StateManager.Options.ScreenResolutionChanged += new EventHandler<ViewportEventArgs>(Options_ScreenResolutionChanged);
_healthBar = new ProgressBar(new Vector2(X, Y), Color.DarkGreen, Color.Red, spriteBatch);
_healthBar.WidthScale = 1;
_healthBar.HeightScale = 10;
Moved += new EventHandler(Ship_Moved);
_shipID = Guid.NewGuid();
_initHealth = 100;
_healthBar.X -= (_healthBar.Width / 2);
_healthBar.Y -= (_healthBar.Height / 1.5f);
_isDead = false;
Explosion = GameContent.Assets.Images.SpriteSheets[SpriteSheetType.Explosion];
_explosionSheet = new SpriteSheet(GameContent.Assets.Images.SpriteSheets[SpriteSheetType.Explosion], new Rectangle(0, 0, 50, 50), this.Position, spriteBatch, 8, 9);
_explosionSheet.IsAnimated = true;
_explosionSheet.Scale = new Vector2(1.5f);
_explosionSheet.RestartAnimation = false;
_currentHealth = _initHealth;
ExplosionSFX = GameContent.Assets.Sound[SoundEffectType.EnemyExplodes];
FriendlyName = ShipType.ToFriendlyString();
particles[0] = GameContent.Assets.Images.particles[ParticleType.Circle];
particles[1] = GameContent.Assets.Images.particles[ParticleType.Square];
gen = new RandomParticleGenerator(SpriteBatch, particles);
gen.TTLSettings = TimeToLiveSettings.AlphaLess100;
gen.RandomProperties = new RandomParticleProperties() { ColorFactor = 0.985f, Tint = Color.White };
gen.ParticlesToGenerate = 1;
engine = new Glib.XNA.SpriteLib.ParticleEngine.ParticleEngine(gen);
Vector2 toEngine = new Vector2(Position.X, Position.Y - texture.Height / 2);
toEngineLength = -toEngine.Length();
toEngineAngle = toEngine.ToAngle();
engine.PositionOffset = new Vector2(0, texture.Height / 2);
engine.Tracked = this;
}