コード例 #1
0
        public GangWeapon AddGangWeapon(GangWeapon gangWeapon)
        {
            gangWeapon.GangWeaponId = "DDDD-EEEE-FFFF";
            _gangWeapons.Add(gangWeapon);

            return(gangWeapon);
        }
コード例 #2
0
        public GangWeapon AddGangWeapon([FromUri] string gangId, GangWeapon gangWeapon)
        {
            if (!_gangManager.Spend(gangId, gangWeapon.Cost))
            {
                return(null);
            }

            return(_weaponManager.AddGangWeapon(gangWeapon));
        }
コード例 #3
0
        /// <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);
                }
            }
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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());
        }
コード例 #6
0
        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());
        }
コード例 #7
0
 /// <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);
 }
コード例 #8
0
 /// <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));
 }
コード例 #9
0
        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);
        }