public static Tinkering FindTinkering(int id, ItemSlot slot, Character character) { //&UT& // chance for Null if (null == AllTinkerings) { return(null); } return(AllTinkerings.Find(new Predicate <Tinkering>(delegate(Tinkering Tinkering) { return (Tinkering.Id == id) && (Tinkering.FitsInSlot(slot, character) || (Tinkering.Slot == ItemSlot.TwoHand && slot == ItemSlot.OneHand)); })) ?? AllTinkerings[0]); }
public static List <Tinkering> FindAllTinkerings(ItemSlot slot, Character character) { //List<ItemSlot> validSlots = new List<ItemSlot>(); //if (slot != ItemSlot.MainHand) // validSlots.Add(slot); //if (slot == ItemSlot.OffHand || slot == ItemSlot.MainHand || slot == ItemSlot.TwoHand) // validSlots.Add(ItemSlot.OneHand); //if (slot == ItemSlot.MainHand) // validSlots.Add(ItemSlot.TwoHand); return(AllTinkerings.FindAll(new Predicate <Tinkering>( delegate(Tinkering Tinkering) { return Tinkering.Slot == ItemSlot.None || (slot == ItemSlot.None || Tinkering.FitsInSlot(slot, character)); } ))); }
public static List <Tinkering> FindTinkerings(ItemSlot slot, Character[] characters, List <string> availableIds, CalculationsBase[] models) { return(AllTinkerings.FindAll(new Predicate <Tinkering>( delegate(Tinkering Tinkering) { bool isRelevant = false; for (int i = 0; i < models.Length; i++) { if (models[i].IsTinkeringRelevant(Tinkering, characters[i]) && (Tinkering.FitsInSlot(slot, characters[i]) || slot == ItemSlot.None)) { isRelevant = true; break; } } return ((isRelevant || Tinkering.Slot == ItemSlot.None) && availableIds.Contains((-1 * (Tinkering.Id + ((int)AvailableItemIDModifiers.Tinkerings * (int)Tinkering.Slot))).ToString())) || Tinkering.Id == 0; } ))); }
public static List <Tinkering> FindTinkerings(ItemSlot slot, Character character, List <string> availableIds, CalculationsBase model) { return(AllTinkerings.FindAll(new Predicate <Tinkering>( delegate(Tinkering Tinkering) { return Tinkering.Id == 0 || ((Tinkering.Slot == ItemSlot.None || model.IsTinkeringRelevant(Tinkering, character) && (slot == ItemSlot.None || Tinkering.FitsInSlot(slot, character))) && availableIds.Contains((-1 * (Tinkering.Id + ((int)AvailableItemIDModifiers.Tinkerings * (int)Tinkering.Slot))).ToString())); } ))); }