/// <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); }
/// <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); }
public CloseCombatWeaponViewModel(ICloseCombatWeapon closeCombatWeapon) { if (closeCombatWeapon == null) { throw new ArgumentNullException("ICloseCombatWeapon is null"); } CloseCombatWeapon = closeCombatWeapon; }
public EquipmentSummaryViewModel(IEquipment equipment) { Equipment = equipment; _Weapon = Equipment as IWeapon; _MisseleWeapon = Equipment as IMisseleWeapon; _CloseCombatWeapon = Equipment as ICloseCombatWeapon; _Armor = Equipment as IArmour; }