public void AddTurret(Vector2 hardPoint, ShipAddOnData addOnData) { ShipTurretData turretData = addOnData as ShipTurretData; string dataAsset = AssetManager.GetKeyFromData(turretData); ShipTurret turret = null; switch (turretData.TurretType) { case "Kinetic": turret = new ShipKineticTurret(hardPoint, dataAsset, this, true); break; case "Missile": turret = new ShipMissileTurret(hardPoint, dataAsset, this, true); break; case "Beam": turret = new ShipBeamTurret(hardPoint, dataAsset, this, true); break; } ShipAddOns.AddObject(turret); DealWithHardPoint(hardPoint, false); }
public override void DrawInGameUI(SpriteBatch spriteBatch) { base.DrawInGameUI(spriteBatch); ShipAddOns.DrawInGameUI(spriteBatch); HullHealthBar.Draw(spriteBatch); }
public void AddEngine(Vector2 hardPoint, ShipAddOnData addOnData) { ShipEngine engine = new ShipEngine(hardPoint, AssetManager.GetKeyFromData(addOnData), this, true); ShipAddOns.AddObject(engine); DealWithHardPoint(hardPoint, true); }
public void AddShield(Vector2 hardPoint, ShipAddOnData addOnData) { ShipShield shield = new ShipShield(hardPoint, AssetManager.GetKeyFromData(addOnData), this, true); ShipAddOns.AddObject(shield); DealWithHardPoint(hardPoint, false); }
public override void Draw(SpriteBatch spriteBatch) { base.Draw(spriteBatch); if (Visible) { ShipAddOns.Draw(spriteBatch); } }
public override void Update(GameTime gameTime) { base.Update(gameTime); if (Active) { // When we move we want a nice drag feel RigidBody.AngularVelocity *= 0.95f; RigidBody.LinearVelocity *= 0.95f; RigidBody.AngularAcceleration *= 0.95f; RigidBody.LinearAcceleration *= 0.95f; if (TargetShip == null || !TargetShip.Alive) { FindNearestTargetShip(); } ShipAddOns.Update(gameTime); HullHealthBar.UpdateValue(CurrentHealth); } }
public override void HandleInput() { base.HandleInput(); ShipAddOns.HandleInput(); }