コード例 #1
0
        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);
        }
コード例 #2
0
        public override void DrawInGameUI(SpriteBatch spriteBatch)
        {
            base.DrawInGameUI(spriteBatch);

            ShipAddOns.DrawInGameUI(spriteBatch);

            HullHealthBar.Draw(spriteBatch);
        }
コード例 #3
0
        public void AddEngine(Vector2 hardPoint, ShipAddOnData addOnData)
        {
            ShipEngine engine = new ShipEngine(hardPoint, AssetManager.GetKeyFromData(addOnData), this, true);

            ShipAddOns.AddObject(engine);

            DealWithHardPoint(hardPoint, true);
        }
コード例 #4
0
        public void AddShield(Vector2 hardPoint, ShipAddOnData addOnData)
        {
            ShipShield shield = new ShipShield(hardPoint, AssetManager.GetKeyFromData(addOnData), this, true);

            ShipAddOns.AddObject(shield);

            DealWithHardPoint(hardPoint, false);
        }
コード例 #5
0
        public override void Draw(SpriteBatch spriteBatch)
        {
            base.Draw(spriteBatch);

            if (Visible)
            {
                ShipAddOns.Draw(spriteBatch);
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
        public override void HandleInput()
        {
            base.HandleInput();

            ShipAddOns.HandleInput();
        }