public void DrawTractorBeam(SpriteBatch spriteBatch) { if (TractorBeam.DrawBeam) { TractorBeam.Draw(spriteBatch); } }
/// <summary> /// /// </summary> /// <param name="textureDictionary">all the different textures the ship uses, most used are Default, Left and Right</param> /// <param name="position">position of the ship</param> /// <param name="turrets">turrets on the ship</param> /// <param name="healthMax">max health</param> /// <param name="energyMax">max energy</param> /// <param name="energyRegen">energy regen per frame</param> /// <param name="turnRate">how fast the ship turns</param> public Ship(IReadOnlyDictionary <string, Texture2D> textureDictionary, Vector2 position, Dictionary <string, List <ITurret> > turrets, float healthMax, float energyMax, float energyRegen, float turnRate, float speed, TractorBeam tractorBeam, int upgradeCount) : base(textureDictionary["Default"], position) { foreach (var t in turrets) { Turrets.Add(t.Key, t.Value); } foreach (var entry in textureDictionary) { TextureDictionary.Add(entry.Key, entry.Value); } Upgrades = new Upgrade[upgradeCount]; TractorBeam = tractorBeam; HealthMax = healthMax; BaseHealth = healthMax; Health = healthMax; BaseEnergy = energyMax; EnergyMax = energyMax; Energy = energyMax; BaseEnergyRegen = energyRegen; EnergyRegen = energyRegen; TurnRate = turnRate; Speed = speed; BackwardsSpeed = 1 / 5f * speed; StrafeSpeed = 3 / 5f * speed; }
public void UpdateTractorBeam(Sector sector, Ship ship) { if (!Moving && _beamDelayCounter == TractorBeam.BeamDelay) { TractorBeam.Update(sector); } }
public TractorBeam(TractorBeam tractorBeam) { Length = tractorBeam.Length; DragSpeed = tractorBeam.DragSpeed; BeamDelay = tractorBeam.BeamDelay; //Sprite Rotation = tractorBeam.Rotation; Position = tractorBeam.Position; Rectangle = tractorBeam.Rectangle; Origin = tractorBeam.Origin; Texture = tractorBeam.Texture; //End }
public Ship(Ship ship) { TextureDictionary = ship.TextureDictionary; //Sprite Rotation = ship.Rotation; Position = ship.Position; Rectangle = ship.Rectangle; Origin = ship.Origin; Texture = ship.Texture; //End TextureIndexCounter = ship.TextureIndexCounter; ShipCurrentIndex = ship.ShipCurrentIndex; ShipPreviousIndex = ship.ShipPreviousIndex; Description = ship.Description; Name = ship.Name; Cost = ship.Cost; TurnRate = ship.TurnRate; Speed = ship.Speed; BackwardsSpeed = ship.BackwardsSpeed; StrafeSpeed = ship.StrafeSpeed; Boost = ship.Boost; Moving = ship.Moving; BaseHealth = ship.BaseHealth; Health = ship.Health; HealthMax = ship.HealthMax; BaseEnergy = ship.BaseEnergy; Energy = ship.Energy; EnergyMax = ship.EnergyMax; BaseEnergyRegen = ship.BaseEnergyRegen; EnergyRegen = ship.EnergyRegen; Upgrades = new Upgrade[ship.Upgrades.Length]; for (int i = 0; i < ship.Upgrades.Length; i++) { if (ship.Upgrades[i] == null) { continue; } Upgrades[i] = new Upgrade(ship.Upgrades[i]); } if (ship.TractorBeam != null) { TractorBeam = new TractorBeam(ship.TractorBeam); } foreach (var turretGroup in ship.Turrets) { Turrets.Add(turretGroup.Key, new List <ITurret>()); } foreach (var turretList in Turrets.Values) { foreach (var turretGroup in ship.Turrets) { foreach (var turret in turretGroup.Value) { turretList.Add(turret.CloneTurret(turret)); //TODO see if this can be don easier instead of implementing CloneTurret in every turret } } } }