Exemple #1
0
        /// <summary>
        /// Determines whether [has two identical close combat weapons].
        /// </summary>
        /// <param name="list">The list.</param>
        /// <returns>
        ///   <c>true</c> if [has two identical close combat weapons] [the specified list]; otherwise, <c>false</c>.
        /// </returns>
        public static bool HasTwoIdenticalCloseCombatWeapons(this IReadOnlyCollection <IEquipment> list)
        {
            List <ICloseCombatWeapon> closeCombatList = new List <ICloseCombatWeapon>();

            foreach (var item in list)
            {
                if (item is ICloseCombatWeapon)
                {
                    ICloseCombatWeapon closeCombatWeapon = item as ICloseCombatWeapon;

                    if (closeCombatList.FirstOrDefault(x => x.Name.Equals(item.Name)) != null)
                    {
                        return(true);
                    }
                    if (closeCombatWeapon.CloseCombatSpecialRules.Any(x => x.Equals(CloseCombatWeaponRules.Pair)))
                    {
                        return(true);
                    }

                    closeCombatList.Add(item as ICloseCombatWeapon);
                }
            }

            return(false);
        }
Exemple #2
0
        /// <summary>
        /// Maximums the close combat weapons reached.
        /// </summary>
        /// <param name="list">The list.</param>
        /// <returns>true if the Maximum of 2 is reached</returns>
        public static bool MaximumCloseCombatWeaponsReached(this IWarrior warrior)
        {
            if (CountNumberOf <ICloseCombatWeapon>(warrior.Equipment) >= warrior.MaximumCloseCombatWeapons)
            {
                return(true);
            }

            List <ICloseCombatWeapon> closeCombatList = new List <ICloseCombatWeapon>();

            foreach (var item in warrior.Equipment)
            {
                if (item is ICloseCombatWeapon)
                {
                    ICloseCombatWeapon closeCombatWeapon = item as ICloseCombatWeapon;

                    if (closeCombatWeapon.CloseCombatSpecialRules.Any(x => x.Equals(CloseCombatWeaponRules.Pair)))
                    {
                        return(true);
                    }

                    closeCombatList.Add(item as ICloseCombatWeapon);
                }
            }

            return(false);
        }
Exemple #3
0
 public CloseCombatWeaponViewModel(ICloseCombatWeapon closeCombatWeapon)
 {
     if (closeCombatWeapon == null)
     {
         throw new ArgumentNullException("ICloseCombatWeapon is null");
     }
     CloseCombatWeapon = closeCombatWeapon;
 }
Exemple #4
0
 public EquipmentSummaryViewModel(IEquipment equipment)
 {
     Equipment          = equipment;
     _Weapon            = Equipment as IWeapon;
     _MisseleWeapon     = Equipment as IMisseleWeapon;
     _CloseCombatWeapon = Equipment as ICloseCombatWeapon;
     _Armor             = Equipment as IArmour;
 }