public void Rebuild()
        {
            if (!Dead || IsCrushed ||
                //!FactionManager.CanAfford(FactionNumber, RebuildCost) ||
                Lives < 1)
            {
                return;
            }

            ShouldDeathSound = true;

            //FactionManager.AddCells(FactionNumber, -RebuildCost);
            //TextParticleSystem.AddParticle(new Vector3(Position.X(), Y, Position.Y()), '-' + RebuildCost.ToString(), (byte)GetTeam());
            for (int i = 0; i < 10; i++)
            {
                ParticleManager.CreateParticle(new Vector3(Position.X(), Y, Position.Y()), Vector3.Zero, Color.White, Size.X(), 1);
            }

            BuildTimer = 0;
            Dead       = false;
            MyBustedTurret.Deactivate();
            InstanceManager.AddChild(this);
            AddTag(GameObjectTag._2DSolid);
            AddTag(GameObjectTag._2DForward);
            ShieldDamage = 0;
            HullDamage   = 0;
            FreezeTime   = 0;
        }
        public override void CreateInGame()
        {
            base.CreateInGame();

            ShipMatrixScale = InstanceManager.AddChild(this);
            WorldMatrix     = Matrix.CreateScale(Size.X()) * Matrix.CreateRotationY(Rotation.getAsRadians()) * Matrix.CreateTranslation(new Vector3(Position.X(), Y, Position.Y()));

            SetQuadGridPosition();
        }
 public UnitBasic(int FactionNumber)
     : base(FactionNumber)
 {
     Load();
     if (InstancerCommit())
     {
         ShipMatrixScale = InstanceManager.AddChild(this);
     }
 }
        public void Activate()
        {
            particleAlpha = 1;
            Size.set(ParentTurret.Size.get());
            Position.set(ParentTurret.Position.get());
            Rotation.set(ParentTurret.Rotation.get());

            SetQuadGridPosition();

            InstanceManager.AddChild(this);
            AddTag(GameObjectTag.Update);
            //AddTag(GameObjectTag._2DSolid);
        }