private void CreateBagListFromRulesTwo()
 {
     foreach (var rule in RuleList)
     {
         BagList.Add(BagMakerTwo(rule));
     }
 }
        private void ProcessEvalList()
        {
            // Get the index from the list
            if (EvalList.Count > 0)
            {
                Counter++;
                int index = EvalList.Dequeue();

                // Get the bag
                Bag bag = BagList[index];

                // enqueue the bag's contents' indices to the EvalList as many times as stated in the rule
                foreach (var item in bag.Containers)
                {
                    if (item != "no other bag")
                    {
                        int    amt  = Int32.Parse(item[0].ToString());
                        string word = item.Trim('1', '2', '3', '4', '5', '6', ' ');

                        for (int i = 0; i < amt; i++)
                        {
                            Bag thing = BagList.Where(x => x.Name == word).FirstOrDefault();
                            EvalList.Enqueue(BagList.IndexOf(BagList.Where(x => x.Name == word).FirstOrDefault()));
                        }
                    }
                }
            }
        }
 private void ClearProperties()
 {
     RuleList.Clear();
     BagList.Clear();
     NodeList.Clear();
     ChildList.Clear();
 }
Beispiel #4
0
        public override void displayPlayer(PlayerInfo _pInfo)
        {
            string output = "";

            output += new ClientInfoList(_pInfo, _options).DisplayShort(_sep);
            output += _sep;
            output += new BagList(_pInfo, _options).Display(_sep);

            SendOutput(output);
        }
Beispiel #5
0
        private void InitBagInfo()
        {
            BagList.Items.Clear();
            EquipList.Items.Clear();
            this.BagList.BeginUpdate();
            this.EquipList.BeginUpdate();

            RepeatedField <BagItem> bags = player.Bags.Bag;

            for (int i = 0; i < bags.Count; i++)
            {
                ListViewItem item = new ListViewItem();
                //imgList.Images.Add(Image.FromFile(dicId2File[bags[i].ItemID]));
                if (!dicId2File.ContainsKey(bags[i].ItemID))
                {
                    continue;
                }
                item.Text       = Path.GetFileNameWithoutExtension(dicId2File[bags[i].ItemID]) + ":" + bags[i].Count;
                item.ImageIndex = bags[i].ItemID;
                BagList.Items.Add(item);
            }
            BagList.LargeImageList = imgList;
            BagList.Show();


            RepeatedField <EquipItem> equips = player.Bags.Equipment;

            for (int i = 0; i < equips.Count; i++)
            {
                ListViewItem item = new ListViewItem();
                //imgList.Images.Add(Image.FromFile(dicId2File[bags[i].ItemID]));
                if (!dicId2File.ContainsKey(equips[i].ItemID))
                {
                    continue;
                }
                item.Text       = Path.GetFileNameWithoutExtension(dicId2File[equips[i].ItemID]) + ":" + equips[i].Count;
                item.ImageIndex = equips[i].ItemID;
                EquipList.Items.Add(item);
            }
            EquipList.LargeImageList = imgList;
            EquipList.Show();


            this.BagList.EndUpdate();
            this.EquipList.EndUpdate();
        }
Beispiel #6
0
        public override void displayPlayer(PlayerInfo _pInfo)
        {
            string output = "";

            output += new ClientInfoList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new StatsList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new BuffList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new SkillList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new QuestList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new SpawnpointList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new WaypointList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new FavoriteRecipeList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new UnlockedRecipeList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new CraftingQueue(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new ToolbeltList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new EquipmentList(_pInfo, _options).Display(_sep);
            output += _sep;
            output += new BagList(_pInfo, _options).Display(_sep);
            output += _sep;

            // todo:
            // friends
            // tracked friends // _pdf.trackedFriendEntityIds //List<int>
            // claims (_ppd.LPBlocks)
            // list owned storage containers and doors for the players

            SendOutput(output);
        }
Beispiel #7
0
        public void CheckForItems()
        {
            //Added to Make sure our list matches what we are looking for.
            LoadList(ItemName, _removeListPath);
            LoadList(BagList, _bagListPath);

            // NB: Since we will be modifying the Me.BagItems list indirectly through WoWclient directives,
            // we can't use it as our iterator--we must make a copy, instead.
            List <WoWItem> itemsToVisit = Me.BagItems.ToList();

            var groups = itemsToVisit.GroupBy(v => v);

            foreach (var group in groups)
            {
                Dlog("Value {0} has {1} items", group.Key, group.Count());
            }

            foreach (WoWItem item in itemsToVisit)
            {
                if (!item.IsValid)
                {
                    continue;
                }

                bool isQuestItem = IsQuestItem(item);

                if (BagList.Contains(item.Name))
                {
                    Slog("{0} is a bag, ignoring.", item.Name);
                    return;
                }



                if (OpnList.Contains(item.Name) && item.IsOpenable &&
                    MrItemRemover2Settings.Instance.EnableOpen == "True")
                {
                    Slog("{0} can be opened. Opening.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (OpnList.Contains(item.Name) && item.StackCount == 1)
                {
                    Slog("{0} can be combined, so we're combining it.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (Combine3List.Contains(item.Name) && item.StackCount >= 3)
                {
                    uint timesToUse = (uint)(Math.Floor((double)(item.StackCount / 3)));
                    Slog("{0} can be combined {1} times, so we're combining it.", item.Name, timesToUse);
                    for (uint timesUsed = 0; timesUsed < timesToUse; timesUsed++)
                    {
                        Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                        Thread.Sleep(SpellManager.GlobalCooldownLeft);
                    }
                }

                if (Combine5List.Contains(item.Name) && item.StackCount >= 5)
                {
                    uint timesToUse = (uint)(Math.Floor((double)(item.StackCount / 5)));
                    Slog("{0} can be combined {1} times, so we're combining it.", item.Name, timesToUse);
                    for (uint timesUsed = 0; timesUsed < timesToUse; timesUsed++)
                    {
                        Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                        Thread.Sleep(SpellManager.GlobalCooldownLeft);
                    }
                }

                if (Combine10List.Contains(item.Name) && item.StackCount >= 10)
                {
                    uint timesToUse = (uint)(Math.Floor((double)(item.StackCount / 10)));
                    Slog("{0} can be combined {1} times, so we're combining it.", item.Name, timesToUse);
                    for (uint timesUsed = 0; timesUsed < timesToUse; timesUsed++)
                    {
                        Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                        Thread.Sleep(SpellManager.GlobalCooldownLeft);
                    }
                }

                if (MrItemRemover2Settings.Instance.EnableRemove == "True" &&
                    MrItemRemover2Settings.Instance.RemoveFood == "True")
                {
                    if (!KeepList.Contains(item.Name) && FoodList.Contains(item.Name))
                    {
                        Slog("{0} was in the Food List and We want to Remove Food. Removing.", item.Name);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                if (MrItemRemover2Settings.Instance.EnableRemove == "True" &&
                    MrItemRemover2Settings.Instance.RemoveDrinks == "True")
                {
                    if (!KeepList.Contains(item.Name) && DrinkList.Contains(item.Name))
                    {
                        Slog("{0} was in the Drink List and We want to Remove Drinks. Removing.", item.Name);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                //if item name Matches whats in the text file / the internal list (after load)
                if (ItemName.Contains(item.Name) && !KeepList.Contains(item.Name))
                {
                    //probally not needed, but still user could be messing with thier inventory.
                    //Printing to the log, and Deleting the Item.
                    Slog("{0} Found Removing Item", item.Name);
                    item.PickUp();
                    Lua.DoString("DeleteCursorItem()");
                    //a small Sleep, might not be needed.
                }

                if (MrItemRemover2Settings.Instance.DeleteQuestItems == "True" && item.ItemInfo.BeginQuestId != 0 &&
                    !KeepList.Contains(item.Name))
                {
                    Slog("{0}'s Began a Quest. Removing", item.Name);
                    item.PickUp();
                    Lua.DoString("DeleteCursorItem()");
                }

                string goldString =
                    MrItemRemover2Settings.Instance.GoldGrays.ToString(CultureInfo.InvariantCulture);
                int    goldValue    = goldString.ToInt32() * 10000;
                string silverString =
                    MrItemRemover2Settings.Instance.SilverGrays.ToString(CultureInfo.InvariantCulture);
                int    silverValue  = silverString.ToInt32() * 100;
                string copperString =
                    MrItemRemover2Settings.Instance.CopperGrays.ToString(CultureInfo.InvariantCulture);
                int copperValue = copperString.ToInt32();

                if (((MrItemRemover2Settings.Instance.DeleteAllGray == "True" && item.Quality == WoWItemQuality.Poor && item.ItemInfo.SellPrice <= (goldValue + silverValue + copperValue)) ||
                     (MrItemRemover2Settings.Instance.DeleteAllWhite == "True" && item.Quality == WoWItemQuality.Common) ||
                     (MrItemRemover2Settings.Instance.DeleteAllGreen == "True" && item.Quality == WoWItemQuality.Uncommon) ||
                     (MrItemRemover2Settings.Instance.DeleteAllBlue == "True" && item.Quality == WoWItemQuality.Rare)) &&
                    (item.BagSlot != -1 && !isQuestItem && !KeepList.Contains(item.Name) && !BagList.Contains(item.Name) &&
                     (ItemName.Contains(item.Name))))
                {
                    switch (item.Quality)
                    {
                    case WoWItemQuality.Poor:
                        Slog("{0}'s Item Quality was {1} and only worth {2} copper. Removing.", item.Name,
                             WoWItemQuality.Poor, item.ItemInfo.SellPrice);
                        break;

                    case WoWItemQuality.Common:
                        Slog("{0}'s Item Quality was {1}. Removing.", item.Name, WoWItemQuality.Common);
                        break;

                    case WoWItemQuality.Uncommon:
                        Slog("{0}'s Item Quality was {1}. Removing.", item.Name, WoWItemQuality.Uncommon);
                        break;

                    case WoWItemQuality.Rare:
                        Slog("{0}'s Item Quality was {1}. Removing.", item.Name, WoWItemQuality.Rare);
                        break;
                    }

                    Lua.DoString("ClearCursor()");
                    item.PickUp();
                    Lua.DoString("DeleteCursorItem()");
                }
            }
        }
        // Add how many boxes?
        //foreach(string item in newRuleList)
        //{
        //    string thing = item.Trim(trimCharsHhTwo);
        //    int amount = int.Parse(thing[0].ToString());

        //    for(int i = 1; i<= amount; i++)
        //    {
        //        formattedRuleList.Add(item.Trim(trimCharsHhTwo));
        //    }
        //}



        private int GetBagIndex(string bag)
        {
            return(BagList.IndexOf(BagList.Where(x => x.Name == bag).FirstOrDefault()));
        }
 private List <Bag> GetParentBagsByChild(string child)
 {
     return(BagList.Where(x => x.Containers.Contains(child)).ToList());
 }
Beispiel #10
0
        public void CheckForItems()
        {
            //Added to Make sure our list matches what we are looking for.
            LoadList(ItemName, _removeListPath);
            LoadList(BagList, _bagListPath);

            // NB: Since we will be modifying the Me.BagItems list indirectly through WoWclient directives,
            // we can't use it as our iterator--we must make a copy, instead.
            List <WoWItem> itemsToVisit = Me.BagItems.ToList();

            foreach (WoWItem item in itemsToVisit)
            {
                if (!item.IsValid)
                {
                    continue;
                }

                bool isQuestItem = IsQuestItem(item);

                if (BagList.Contains(item.Name))
                {
                    Slog("{0} is a bag, ignoring.", item.Name);
                    return;
                }

                if (OpnList.Contains(item.Name) && item.IsOpenable &&
                    MrItemRemover2Settings.Instance.EnableOpen == "True")
                {
                    Slog("{0} can be used/opened. Using/Opening.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (Combine3List.Contains(item.Name) && item.StackCount >= 3)
                {
                    Slog("{0} can be combined, so we're combining it.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (Combine5List.Contains(item.Name) && item.StackCount >= 5)
                {
                    Slog("{0} can be combined, so we're combining it.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (Combine10List.Contains(item.Name) && item.StackCount >= 10)
                {
                    Slog("{0} can be combined, so we're combining it.", item.Name);
                    Lua.DoString("UseItemByName(\"" + item.Name + "\")");
                }

                if (MrItemRemover2Settings.Instance.EnableRemove == "True" &&
                    MrItemRemover2Settings.Instance.RemoveFood == "True")
                {
                    if (!KeepList.Contains(item.Name) && FoodList.Contains(item.Name))
                    {
                        Slog("{0} was in the Food List and We want to Remove Food. Removing.", item.Name,
                             item.ItemInfo.SellPrice);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                if (MrItemRemover2Settings.Instance.EnableRemove == "True" &&
                    MrItemRemover2Settings.Instance.RemoveDrinks == "True")
                {
                    if (!KeepList.Contains(item.Name) && DrinkList.Contains(item.Name))
                    {
                        Slog("{0} was in the Drink List and We want to Remove Drinks. Removing.", item.Name,
                             item.ItemInfo.SellPrice);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                //if item name Matches whats in the text file / the internal list (after load)
                if (ItemName.Contains(item.Name) && !KeepList.Contains(item.Name))
                {
                    //probally not needed, but still user could be messing with thier inventory.
                    //Printing to the log, and Deleting the Item.
                    Slog("{0} Found Removing Item", item.Name);
                    item.PickUp();
                    Lua.DoString("DeleteCursorItem()");
                    //a small Sleep, might not be needed.
                }

                if (MrItemRemover2Settings.Instance.DeleteQuestItems == "True" && item.ItemInfo.BeginQuestId != 0 &&
                    !KeepList.Contains(item.Name))
                {
                    Slog("{0}'s Began a Quest. Removing", item.Name);
                    item.PickUp();
                    Lua.DoString("DeleteCursorItem()");
                }

                if ((MrItemRemover2Settings.Instance.DeleteAllGray == "True" && item.Quality == WoWItemQuality.Poor) ||
                    (MrItemRemover2Settings.Instance.DeleteAllWhite == "True" && item.Quality == WoWItemQuality.Common) ||
                    (MrItemRemover2Settings.Instance.DeleteAllGreen == "True" && item.Quality == WoWItemQuality.Uncommon) ||
                    (MrItemRemover2Settings.Instance.DeleteAllBlue == "True" && item.Quality == WoWItemQuality.Rare))
                {
                }

                //Process all Gray Items if enabled.
                if (MrItemRemover2Settings.Instance.DeleteAllGray == "True" && item.Quality == WoWItemQuality.Poor)
                {
                    //Gold Format, goes in GXX SXX CXX
                    string goldString =
                        MrItemRemover2Settings.Instance.GoldGrays.ToString(CultureInfo.InvariantCulture);
                    int    goldValue    = goldString.ToInt32() * 10000;
                    string silverString =
                        MrItemRemover2Settings.Instance.SilverGrays.ToString(CultureInfo.InvariantCulture);
                    int    silverValue  = silverString.ToInt32() * 100;
                    string copperString =
                        MrItemRemover2Settings.Instance.CopperGrays.ToString(CultureInfo.InvariantCulture);
                    int copperValue = copperString.ToInt32();

                    if (item.BagSlot != -1 && !isQuestItem &&
                        item.ItemInfo.SellPrice <= (goldValue + silverValue + copperValue) &&
                        !KeepList.Contains(item.Name) && !BagList.Contains(item.Name))
                    {
                        Slog("{0}'s Item Quality was Poor and only worth {1} copper. Removing.", item.Name,
                             item.ItemInfo.SellPrice);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                //Process all White Items if enabled.
                if (MrItemRemover2Settings.Instance.DeleteAllWhite == "True" && item.Quality == WoWItemQuality.Common)
                {
                    if (item.BagSlot != -1 && !isQuestItem && !KeepList.Contains(item.Name) &&
                        !BagList.Contains(item.Name) && !FoodList.Contains(item.Name) &&
                        !DrinkList.Contains(item.Name))
                    {
                        Slog("{0}'s Item Quality was Common. Removing.", item.Name);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                //Process all Green Items if enabled.
                if (MrItemRemover2Settings.Instance.DeleteAllGreen == "True" && item.Quality == WoWItemQuality.Uncommon)
                {
                    if (item.BagSlot != -1 && !isQuestItem &&
                        !KeepList.Contains(item.Name) && !BagList.Contains(item.Name))
                    {
                        Slog("{0}'s Item Quality was Uncommon. Removing.", item.Name);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }

                //Process all Blue Items if enabled.
                if (MrItemRemover2Settings.Instance.DeleteAllBlue == "True" && item.Quality == WoWItemQuality.Rare)
                {
                    if (item.BagSlot != -1 && !isQuestItem &&
                        !KeepList.Contains(item.Name) && !BagList.Contains(item.Name))
                    {
                        Slog("{0}'s Item Quality was Rare. Removing.", item.Name);
                        Lua.DoString("ClearCursor()");
                        item.PickUp();
                        Lua.DoString("DeleteCursorItem()");
                    }
                }
            }
        }