public GangWeapon AddGangWeapon(GangWeapon gangWeapon) { gangWeapon.GangWeaponId = "DDDD-EEEE-FFFF"; _gangWeapons.Add(gangWeapon); return(gangWeapon); }
public GangWeapon AddGangWeapon([FromUri] string gangId, GangWeapon gangWeapon) { if (!_gangManager.Spend(gangId, gangWeapon.Cost)) { return(null); } return(_weaponManager.AddGangWeapon(gangWeapon)); }
/// <summary> /// Add gang weapon. Adds a weapon to the gang's stash. /// </summary> /// <param name="gangWeapon">Gang weapon</param> /// <returns>Added gang weapon</returns> public GangWeapon AddGangWeapon(GangWeapon gangWeapon) { using (var connection = new SqlConnection(_connectionString)) { using (var command = new SqlCommand("GangWeapons_AddGangWeapon", connection)) { connection.Open(); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@GangId", SqlDbType.NVarChar, 100).Value = gangWeapon.GangId; command.Parameters.Add("@WeaponId", SqlDbType.Int).Value = gangWeapon.Weapon.WeaponId; var gangWeaponId = command.Parameters.Add("@GangWeaponId", SqlDbType.NVarChar, 100); gangWeaponId.Direction = ParameterDirection.Output; var reader = command.ExecuteNonQuery(); gangWeapon.GangWeaponId = (string)gangWeaponId.Value; return(gangWeapon); } } }
/// <summary> /// Remove ganger weapon (unequip weapon from ganger) /// </summary> /// <param name="gangerId">Ganger ID</param> /// <param name="gangerWeaponId">Ganger weapon ID to remove</param> public void RemoveGangerWeapon(string gangerId, string gangerWeaponId) { var ganger = _gangerProvider.GetByGangerId(gangerId); var gangerWeapon = _weaponProvider.GetGangerWeapons(gangerId) .FirstOrDefault(gw => gw.GangerWeaponId == gangerWeaponId); if (gangerWeapon == null) { throw new ArgumentException($"Ganger does not have GangerWeapon with id {gangerWeaponId} equipped."); } _weaponProvider.RemoveGangerWeapon(gangerWeaponId); var gangWeapon = new GangWeapon() { Cost = gangerWeapon.Cost, GangId = ganger.GangId, Weapon = gangerWeapon.Weapon, }; _weaponProvider.AddGangWeapon(gangWeapon); }
public void GangWeaponsTest() { var gangId = "1"; var gangWeapon = new GangWeapon() { GangId = gangId, Weapon = new Weapon() { WeaponId = (WeaponEnum)1 }, Cost = 10 }; Assert.AreEqual(0, _weaponManager.GetGangStash(gangId).Count()); var returnedWeapon = _weaponManager.AddGangWeapon(gangWeapon); Assert.AreEqual("DDDD-EEEE-FFFF", returnedWeapon.GangWeaponId); Assert.AreEqual(1, _weaponManager.GetGangStash(gangId).Count()); _weaponManager.RemoveGangWeapon("DDDD-EEEE-FFFF"); Assert.AreEqual(0, _weaponManager.GetGangStash(gangId).Count()); }
public void GangerWeaponsTest() { var gangId = "321"; var ganger = new Ganger() { GangerId = "123", GangId = gangId }; var gangWeapon = new GangWeapon() { GangId = gangId, Weapon = new Weapon() { WeaponId = (WeaponEnum)1 }, Cost = 10 }; _gangerProvider.Setup(gp => gp.GetByGangerId(ganger.GangerId)) .Returns(ganger); var addedGangWeapon = _weaponManager.AddGangWeapon(gangWeapon); Assert.AreEqual(0, _weaponManager.GetGangerWeapons(ganger.GangerId).Count()); var returnedWeapon = _weaponManager.AddGangerWeapon(ganger.GangerId, addedGangWeapon.GangWeaponId); Assert.AreEqual("AAAA-BBBB-CCCC", returnedWeapon.GangerWeaponId); Assert.AreEqual(1, _weaponManager.GetGangerWeapons(ganger.GangerId).Count()); _weaponManager.RemoveGangerWeapon(ganger.GangerId, "AAAA-BBBB-CCCC"); Assert.AreEqual(0, _weaponManager.GetGangerWeapons(ganger.GangerId).Count()); Assert.AreEqual(1, _weaponManager.GetGangStash(gangId).Count()); }
/// <summary> /// Buy equipment /// </summary> /// <param name="equipment">Equipment</param> public void BuyEquipment(GangWeapon equipment) { // TODO: Add some validation to ensure cost is correct. _gangManager.Spend(equipment.GangId, equipment.Cost); _weaponManager.AddGangWeapon(equipment); }
/// <summary> /// Add gang weapon /// </summary> /// <param name="gangWeapon">Gang weapon</param> /// <returns>Added gang weapon</returns> public GangWeapon AddGangWeapon(GangWeapon gangWeapon) { return(_weaponProvider.AddGangWeapon(gangWeapon)); }
private GangWeapon GetGangWeaponFromReader(SqlDataReader reader) { var gangWeapon = new GangWeapon(); if (reader.Read()) { var value = reader.GetOrdinal("weaponId"); gangWeapon.Weapon.WeaponId = (WeaponEnum)reader.GetInt32(value); value = reader.GetOrdinal("weaponName"); gangWeapon.Weapon.Name = reader.GetString(value); value = reader.GetOrdinal("shortRange"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.ShortRange = reader.GetString(value); } value = reader.GetOrdinal("longRange"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.LongRange = reader.GetString(value); } value = reader.GetOrdinal("hitShort"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.HitShort = reader.GetString(value); } value = reader.GetOrdinal("hitLong"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.HitLong = reader.GetString(value); } value = reader.GetOrdinal("strength"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.Strength = reader.GetString(value); } value = reader.GetOrdinal("damage"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.Damage = reader.GetString(value); } value = reader.GetOrdinal("saveMod"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.SaveMod = reader.GetString(value); } value = reader.GetOrdinal("ammoRoll"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.AmmoRoll = reader.GetString(value); } value = reader.GetOrdinal("type"); gangWeapon.Weapon.WeaponType = (WeaponType)reader.GetInt32(value); value = reader.GetOrdinal("cost"); gangWeapon.Weapon.Cost = reader.GetString(value); value = reader.GetOrdinal("availability"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.WeaponAvailability = (WeaponAvailability)reader.GetInt32(value); } value = reader.GetOrdinal("description"); if (!reader.IsDBNull(value)) { gangWeapon.Weapon.SpecialRules = reader.GetString(value); } value = reader.GetOrdinal("gangWeaponId"); gangWeapon.GangWeaponId = reader.GetString(value); value = reader.GetOrdinal("gangId"); gangWeapon.GangId = reader.GetString(value); } else { return(null); } return(gangWeapon); }