示例#1
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()));
     }
                                      )));
 }
示例#2
0
 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]);
 }
示例#3
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));
     }
                                      )));
 }
示例#4
0
 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;
     }
                                      )));
 }