Beispiel #1
0
    private IEnumerator ShowObjectives()
    {
        int count      = 0;
        int max        = gameStats.objectList.Count;
        int moneyCount = 0;

        moneyText.text = "$" + moneyCount.ToString();

        while (count < max)
        {
            if (!skipPress)
            {
                yield return(new WaitForSecondsRealtime(0.075f));

                SoundRequest.RequestSound("Punch");
            }

            // Spawn next object in list

            LootObject lo = gameStats.objectList[count];

            Instantiate(ImageFromID(lo.ID), grid);

            moneyCount += lo.price;

            moneyText.text = "$" + moneyCount.ToString();

            count++;
        }

        skipPress = true;
    }
 private void OnChanged_InventoryState()
 {
     if (m_CurLootObject && InventoryController.Instance.IsClosed)
     {
         m_CurLootObject = null;
     }
 }
 private void CheckDesiccateAetheria(ref LootObject IoItemAetheria)
 {
     try
     {
         IoItemAetheria.IOR = IOResult.dessicate;
         return;
     }catch(Exception ex){LogError(ex);}
 }
Beispiel #4
0
    void _GeneratePrefabLoot()
    {
        GameObject myPrefab;

        myPrefab   = Resources.Load("Prefabs/Collectible/Loot") as GameObject;
        LootObject = Instantiate(myPrefab, GetComponent <Transform>().position + new Vector3(0, 0.5f, 0), Quaternion.identity);
        LootObject.GetComponent <SpriteRenderer>().sprite = _GenerateLootSprite();
    }
Beispiel #5
0
        public void Process(ref LootObject Loot)
        {
            var Item = Roll();

            if (Item != null)
            {
                Loot.Items.Add(new LootItem(ref Item));
            }
        }
 private void CheckManaItem(ref LootObject IOItemMana)
 {
     try
     {
         if(GISettings.LootByMana == 0){return;}
         if(Core.WorldFilter.GetInventory().Where(x => x.ObjectClass == ObjectClass.ManaStone && x.Values(LongValueKey.IconOutline) == 0).Count() == 0){return;}
         if(IOItemMana.LValue(LongValueKey.CurrentMana) > GISettings.LootByMana)
         {
             IOItemMana.IOR = IOResult.manatank;
         }
     } catch(Exception ex){LogError(ex);}
 }
 private void CheckManaItem(ref LootObject IOItemMana)
 {
     try
     {
         if(mGeneralSettings.GearInspectorSettings.LootByMana == 0){return;}
         if(mCurrentInventory.EmptyManaStonesCount == 0 || mCurrentInventory.EmptyManaStonesCount <= LOHash.Where(x => x.IOR == IOResult.manatank).Count()){return;}
         if(IOItemMana.Values(ALongValueKeys.CurrentMana) > mGeneralSettings.GearInspectorSettings.LootByMana)
         {
             IOItemMana.IOR = IOResult.manatank;
         }
     } catch(Exception ex){LogError(ex);}
 }
Beispiel #8
0
    void Start()
    {
        if (!isServer)
        {
            return;
        }

        foreach (LootObject spawner in spawns)
        {
            if (spawner.mainLoot == true)
            {
                current = spawner;
                lootcount++;
                var loot = (GameObject)Instantiate(current.lootPrefab, current.pos, current.rot);
                NetworkServer.Spawn(loot);
            }
        }

        do
        {
            allLimit = true;

            foreach (LootObject spawner in spawns)
            {
                if (spawner.limitReached == false)
                {
                    allLimit = false;
                }
            }

            if (allLimit == true)
            {
                return;
            }

            ChoosePosition();

            var enemy = (GameObject)Instantiate(current.lootPrefab, current.pos, current.rot);
            lootcount++;

            for (int i = 0; i < spawnList.Length; i++)
            {
                if (spawnList[i] == null)
                {
                    spawnList[i] = enemy;
                }
            }

            NetworkServer.Spawn(enemy);
        } while (lootcount <= max_loot);
    }
Beispiel #9
0
 public void Process(ref LootObject Loot, byte GroupID)
 {
     if (GroupID > 0)
     {
         if (Groups.ContainsKey(GroupID))
         {
             Groups[GroupID].Process(ref Loot);
         }
         return;
     }
     checked
     {
         int num = Items.Count - 1;
         for (int i = 0; i <= num; i++)
         {
             if (!Items[i].Roll())
             {
                 continue;
             }
             if (Items[i].MinCountOrRef < 0)
             {
                 LootTemplate Referenced = WorldServiceLocator._WS_Loot.LootTemplates_Reference.GetLoot(-Items[i].MinCountOrRef);
                 if (Referenced != null)
                 {
                     int maxCount = Items[i].MaxCount;
                     for (int j = 1; j <= maxCount; j++)
                     {
                         Referenced.Process(ref Loot, Items[i].Group);
                     }
                 }
             }
             else
             {
                 List <LootItem>      items = Loot.Items;
                 List <LootStoreItem> items2;
                 int           index;
                 LootStoreItem Item = (items2 = Items)[index = i];
                 LootItem      item = new LootItem(ref Item);
                 items2[index] = Item;
                 items.Add(item);
             }
         }
         foreach (KeyValuePair <byte, LootGroup> group in Groups)
         {
             group.Value.Process(ref Loot);
         }
     }
 }
Beispiel #10
0
    void ChoosePosition()
    {
        newspawn = spawns[Random.Range(0, spawns.Length)];

        if (newspawn.spawnLimit != 0)
        {
            if (newspawn.limitReached)
            {
                ChoosePosition();
            }
        }


        newspawn.currentCount += 1;
        current = newspawn;
    }
Beispiel #11
0
        private bool Try_OpenLootContainer(LootObject lootObject)
        {
            if (InventoryController.Instance.IsClosed)
            {
                bool hasOpened = InventoryController.Instance.SetState.Try(ET.InventoryState.Loot);

                if (hasOpened)
                {
                    m_CurLootObject = lootObject;
                    m_ItemContainer.Setup(lootObject.ItemHolders);

                    return(true);
                }
            }

            return(false);
        }
Beispiel #12
0
    //drop to the ground, can wait for pick
    public void StartPickup()
    {
        if (_pickupFlag)
        {
            return;
        }

        _pickupFlag = true;
        _moveFlag   = false;


        //for particle objects, prevent from born too early
        //if (!_lootObj.activeSelf)
        {
            _lootObj.transform.parent        = LootManager.Instance.LootRoot;
            _lootObj.transform.localPosition = _moveTransform.position;
            _lootObj.SetActive(true);
        }

        ShowShadow(true);

        LootObject lootObject = _lootObj.GetComponent <LootObject>();

        lootObject.LootId    = _lootId;
        lootObject.LootCount = _lootCount;

        GameObject particle = GameObject.Instantiate(_lootParticlePrefab, _thisTransform.position, Quaternion.identity) as GameObject;

        particle.transform.parent        = LootManager.Instance.LootRoot;
        particle.transform.localPosition = _moveTransform.position;

        lootObject.PartcileEffect = particle;
        lootObject.StartPickup(_lifeTime);

        Destroy(_moveObj);
        Destroy(gameObject);
    }
        private void TrophyHashCheckItem(ref LootObject IOItem)
        {
            try
            {
                string IsTrophyName = String.Empty;
                if(mTrophyHash.Contains(@IOItem.Name)){IsTrophyName = @IOItem.Name;}
                else
                {
                    foreach(string name in mTrophyStartsWithHash)
                    {
                        if(@IOItem.Name.StartsWith(@name)){IsTrophyName = @name; break;}
                    }
                }
                if(IsTrophyName == String.Empty){return;}
                int LootMax = mTrophyLootMaxDictionary[IsTrophyName];

                if(LootMax == 0)
                {
                    IOItem.IOR = IOResult.trophy;
                    return;
                }
                else if(LootMax > 0)
                {
                    if(AetherObjects.InventoryCountByName(@IOItem.Name) < LootMax)
                    {
                        IOItem.IOR = IOResult.trophy;
                    }
                    else{IOItem.IOR = IOResult.nomatch;}
                    return;
                }
                else if(LootMax == -1)
                {
                    string Name = @IOItem.Name;
                    if(LOHash.Any(x => @x.Name == @Name && x.IOR == IOResult.trophy))
                    {
                        IOItem.IOR = IOResult.nomatch;
                        return;
                    }
                    IOItem.IOR = IOResult.trophy;
                    return;
                }
            } catch(Exception ex){LogError(ex);}
            return;
        }
        private void CheckRulesItem(ref LootObject IOItemWithIDReference)
        {
            //Irq:  Note to self:  Cloak IDs....cloaks w/spells are 352 = 1;  cloaks w/absorb are 352=2
            try
            {

                LootObject IOItemWithID = IOItemWithIDReference;

                List<ItemRule> AppliesToListMatches = (from appliesto in mSearchListHolder.ItemRulesHash.Where(x => x.enabled)
                    where (appliesto.RuleAppliesTo & IOItemWithID.Values(ALongValueKeys.Category)) == IOItemWithID.Values(ALongValueKeys.Category)
                    select appliesto).ToList();

                if(AppliesToListMatches.Count == 0) {return;}

                List<ItemRule> SlotListMatches = (from slots in AppliesToListMatches
                    where slots.RuleSlots == 0 || (IOItemWithID.Values(ALongValueKeys.EquipableSlots) & slots.RuleSlots) != 0
                    select slots).ToList();

                if(SlotListMatches.Count == 0) {return;}

                List<ItemRule> SetMatches = (from sets in SlotListMatches
                    where sets.RuleArmorSet.Count == 0 || sets.RuleArmorSet.Contains((int)IOItemWithID.Values(ALongValueKeys.ArmorSet))
                    select sets).ToList();

                if(SetMatches.Count == 0) {return;}

                List<ItemRule> PropertyListMatches = (from properties in SetMatches
                    where (properties.RuleArcaneLore == -1 || IOItemWithID.Values(ALongValueKeys.LoreRequirement) <= properties.RuleArcaneLore) &&
                          (properties.RuleWork == -1 || IOItemWithID.Values(ALongValueKeys.Workmanship) <= properties.RuleWork) &&
                          (properties.RuleWieldLevel == -1 ||
                           (IOItemWithID.Values(ALongValueKeys.WieldReqType) != 7 &&  IOItemWithID.Values(ALongValueKeys.WieldReqType2) != 7) ||
                     	   (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7 && IOItemWithID.Values(ALongValueKeys.WieldReqValue) <= properties.RuleWieldLevel) ||
                     	   (IOItemWithID.Values(ALongValueKeys.WieldReqType2) == 7 && IOItemWithID.Values(ALongValueKeys.WieldReqValue2) <= properties.RuleWieldLevel))
                    select properties).ToList();

                if(PropertyListMatches.Count == 0) {return;}

                List<ItemRule> AdvancedMatches = (from advancedmatches in PropertyListMatches
                               where !advancedmatches.AdvSettings || MatchAdvanced(advancedmatches, IOItemWithID)
                               select advancedmatches).ToList();

                if(AdvancedMatches.Count == 0){return;}

                List<ItemRule> ArmorTypeMatches = (from armormatch in AdvancedMatches
                            where armormatch.RuleArmorTypes.Count == 0 || armormatch.RuleArmorTypes.Contains(IOItemWithID.ArmorType)
                            select armormatch).ToList();

                List<ItemRule> PaletteMatches = (from palmatch in ArmorTypeMatches
                        where palmatch.Palattes.Sum() == 0 || palmatch.Palattes.Count == 0  || CompareLists(palmatch.Palattes, IOItemWithID.Palettes) ||
                        CheckContains(palmatch.Palattes, IOItemWithID.Palettes)
                        select palmatch).ToList();

                List<ItemRule> SpellListMatches = (from spellmatches in PaletteMatches
                    where spellmatches.RuleSpellNumber == -1 || spellmatches.RuleSpells.Count == 0 ||
                    IOItemWithID.SpellsOnItem.Intersect(spellmatches.RuleSpells).Count() >= spellmatches.RuleSpellNumber
                    select spellmatches).ToList();

                if(SpellListMatches.Count == 0) {return;}

                switch(IOItemWithID.ObjectClass)
                {

                    case AObjectClass.Gem:
                            if(!IOItemWithID.Aetheriacheck) {return;}

                        List<ItemRule> reducedaetheriamatches = (from ruls in SpellListMatches
                            where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                            orderby ruls.RulePriority
                            select ruls).ToList();

                            if(reducedaetheriamatches.Count > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedaetheriamatches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }

                    case AObjectClass.Jewelry:  //Jewelry doesn't have gear scores at this time.
                            List<ItemRule> reducedjewelrymatches = (from ruls in SpellListMatches
                                    where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                                    orderby ruls.RulePriority
                                    select ruls).ToList();

                            if(reducedjewelrymatches.Count > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedjewelrymatches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }

                    case AObjectClass.Armor:
                        List<ItemRule> reducedarmormatches = (from ruls in  SpellListMatches
                            where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                            orderby ruls.RulePriority
                            select ruls).ToList();

                        if(reducedarmormatches.Count > 0)
                        {
                            IOItemWithID.IOR = IOResult.rule;
                            IOItemWithID.MatchingItemRule = reducedarmormatches.First();
                            return;
                        }
                        else
                        {
                            return;
                        }

                    case AObjectClass.Clothing:
                        if(IOItemWithID.Values(ALongValueKeys.EquipableSlots) == 0x8000000)
                        {
                            List<ItemRule> reducedcloakmatches = (from ruls in SpellListMatches
                                where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                                orderby ruls.RulePriority
                                select ruls).ToList();

                            if(reducedcloakmatches.Count > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedcloakmatches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }
                        }
                        else if(IOItemWithID.Values(ALongValueKeys.ArmorLevel) > 0)
                        {
                            List<ItemRule> reducedarmorclothmatches = (from ruls in SpellListMatches
                                where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                                orderby ruls.RulePriority
                                select ruls).ToList();

                            if(reducedarmorclothmatches.Count > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedarmorclothmatches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }
                        }

                        else
                        {
                            List<ItemRule> reducedclothingmatches = (from ruls in SpellListMatches
                                    where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore)
                                    orderby ruls.RulePriority
                                    select ruls).ToList();

                            if(reducedclothingmatches.Count > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedclothingmatches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }
                        }
                    case AObjectClass.MeleeWeapon:
                    case AObjectClass.MissileWeapon:
                    case AObjectClass.WandStaffOrb:
                        List<ItemRule> reducedweaponmatches = (from ruls in SpellListMatches
                            where IOItemWithID.GetGearScore() >= ruls.GearScore &&
                            (ruls.RuleDamageTypes == 0 || (ruls.RuleDamageTypes & IOItemWithID.DamageType) == IOItemWithID.DamageType) &&
                            (ruls.RuleWieldSkill == 0 || (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7 && ruls.RuleWieldSkill == 0) ||
                                ruls.RuleWieldSkill == IOItemWithID.Values(ALongValueKeys.WieldReqAttribute)) &&
                            (ruls.RuleMastery == 0 || IOItemWithID.WeaponMasteryCategory == ruls.RuleMastery) &&
                            (!ruls.WieldRequirements.Any(x => x.WieldEnabled) ||
                              ruls.WieldRequirements.Any(x => x.WieldEnabled && IOItemWithID.Values(ALongValueKeys.WieldReqValue) == x.WieldReqValue) ||
                              (ruls.WieldRequirements.Any(x => x.WieldEnabled && x.WieldReqValue == 0) &&
                               (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 0 || IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7)))
                            orderby ruls.RulePriority
                            select ruls).ToList();

                        if(reducedweaponmatches.Count > 0)
                        {
                            IOItemWithID.IOR = IOResult.rule;
                            IOItemWithID.MatchingItemRule = reducedweaponmatches.First();
                            return;
                        }
                        else
                        {
                            return;
                        }

                    case AObjectClass.Misc:
                        if(IOItemWithID.Name.Contains("Essence"))
                        {
                            List<ItemRule> reducedessencematches = (from ruls in SpellListMatches
                                where IOItemWithID.GetGearScore() >= ruls.GearScore && ruls.RuleWieldSkill == 54 &&
                                (ruls.RuleMastery == 0 || IOItemWithID.WeaponMasteryCategory == ruls.RuleMastery) &&
                                (ruls.RuleDamageTypes == 0 || (ruls.RuleDamageTypes & IOItemWithID.DamageType) == IOItemWithID.DamageType) &&
                                (!ruls.WieldRequirements.Any(x => x.WieldEnabled) ||
                                 ruls.WieldRequirements.Any(x => x.WieldEnabled && IOItemWithID.Values(ALongValueKeys.SummoningSkill) == x.WieldReqValue))
                                orderby ruls.RulePriority
                                select ruls).ToList();

                            if(reducedessencematches.Count() > 0)
                            {
                                IOItemWithID.IOR = IOResult.rule;
                                IOItemWithID.MatchingItemRule = reducedessencematches.First();
                                return;
                            }
                            else
                            {
                                return;
                            }
                        }
                        else
                        {
                            return;
                        }
                    default:
                        return;
                }
            }
            catch(Exception ex) {LogError(ex);}
        }
        private void LootByContainer(int ContainerId)
        {
            try
            {
                LootObject container = new LootObject(Core.WorldFilter[ContainerId]);

                if(container.Name.Contains(Core.CharacterFilter.Name)){return;}
                //TODO:  Protect permitted corpses.

                if(container.Name.Contains("Chest") || container.Name.Contains("Vault") ||
                   container.Name.Contains("Reliquary") || container.ObjectClass == ObjectClass.Corpse)
                {
                    foreach(WorldObject wo in Core.WorldFilter.GetByContainer(container.Id))
                    {
                        if(!LOList.Any(x => x.Id == wo.Id))
                        {
                            LootObject lo = new LootObject(wo);
                            LOList.Add(lo);
                            SeparateItemsToID(lo.Id);
                        }
                    }
                }

            }catch(Exception ex){LogError(ex);}
        }
        // Item Tracker ID functions begin here
        private void CheckSalvageItem(ref LootObject IOItemSalvage)
        {
            try
            {
                LootObject IoItemSalvageMirror = IOItemSalvage;

                if(IOItemSalvage.DValue(DoubleValueKey.SalvageWorkmanship) > 0)
                {
                    var salvagerulecheck = from allrules in SalvageRulesList
                        where (allrules.material == IoItemSalvageMirror.LValue(LongValueKey.Material)) &&
                                                (IoItemSalvageMirror.DValue(DoubleValueKey.SalvageWorkmanship) >= allrules.minwork) &&
                                                (IoItemSalvageMirror.DValue(DoubleValueKey.SalvageWorkmanship) <= (allrules.maxwork +0.99))
                                        select allrules;

                    if(salvagerulecheck.Count() > 0)
                    {
                        IOItemSalvage.IOR = IOResult.salvage;
                        IOItemSalvage.rulename = salvagerulecheck.First().ruleid;
                    }
                }

                if(IOItemSalvage.Aetheriacheck && GISettings.AutoDessicate)
                {
                    IOItemSalvage.IOR = IOResult.dessicate;
                }
            }catch(Exception ex){LogError(ex);}
        }
        private void ManualCheckItemForMatches(LootObject IOItem)
        {
            try
            {
                if(IOItem.Id == LastReportGUID) {return;}
                else{LastReportGUID = IOItem.Id;}

                if(IOItem.ObjectClass == ObjectClass.Scroll){CheckUnknownScrolls(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown){CheckRare(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {TrophyListCheckItem(ref IOItem);}
                if(IOItem.HasIdData && IOItem.IOR == IOResult.unknown){CheckRulesItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown && GISettings.IdentifySalvage) {CheckSalvageItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {CheckManaItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {CheckValueItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {IOItem.IOR = IOResult.nomatch;}

                if(GISettings.GSStrings) {ReportStringToChat(IOItem.GSReportString());}
                if(GISettings.AlincoStrings){ReportStringToChat(IOItem.LinkString());}

            }catch(Exception ex){LogError(ex);}
        }
        private void LootByContainer()
        {
            try
            {
                AetherObject container = AetherObjects.Collection[Core.Actions.OpenedContainer];
                if(container.Name.Contains(AetherCharacter.CharStats.Name)){return;}
                if(PermittedCorpsesList.Count > 0){if(PermittedCorpsesList.Any(x => container.Name.Contains(x))){return;}}

                if(container.Name.Contains("Chest") || container.Name.Contains("Vault") ||
                   container.Name.Contains("Reliquary") || container.ObjectClass == AObjectClass.Corpse)
                {
                    foreach(AetherObject ao in AetherObjects.GetByObjectContainer(container.Id))
                    {
                        if(!LOHash.Any(x => x.Id == ao.Id))
                        {
                            LootObject lo = new LootObject(ao);
                            LOHash.Add(lo);
                            IdentifyItem(lo.Id);
                        }
                    }
                }

            }catch(Exception ex){LogError(ex);}
        }
Beispiel #19
0
        private void UpdateItemHud()
        {
            try
            {

                if(ItemHudView == null) {return;}

                ItemHudInspectorList.ClearRows();
                ItemHudUstList.ClearRows();

                for(int i = LOList.Count - 1; i >= 0; i--)
                {
                    LOListAcessor = LOList[i];
                    if(LOListAcessor.InspectList)
                    {
                        ItemHudListRow = ItemHudInspectorList.AddRow();
                        ((HudPictureBox)ItemHudListRow[0]).Image = LOListAcessor.Icon + 0x6000000;
                        if(GISettings.RenderMini){((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.MiniIORString();}
                        else{((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.IORString() + LOListAcessor.Name;}
                        ((HudStaticText)ItemHudListRow[1]).FontHeight = nitemFontHeight;
                        if(LOListAcessor.IOR == IOResult.trophy) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.Wheat;}
                        if(LOListAcessor.IOR == IOResult.salvage) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.PaleVioletRed;}
                        if(LOListAcessor.IOR == IOResult.val) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.PaleGoldenrod;}
                        if(LOListAcessor.IOR == IOResult.spell) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.Lavender;}
                        if(LOListAcessor.IOR == IOResult.rule)  {((HudStaticText)ItemHudListRow[1]).TextColor = Color.LightGreen;}
                        if(LOListAcessor.IOR == IOResult.rare)  {((HudStaticText)ItemHudListRow[1]).TextColor = Color.HotPink;}
                        if(LOListAcessor.IOR == IOResult.manatank)  {((HudStaticText)ItemHudListRow[1]).TextColor = Color.CornflowerBlue;}
                        ((HudPictureBox)ItemHudListRow[2]).Image = GearGraphics.RemoveCircle;
                        ((HudStaticText)ItemHudListRow[3]).Text = LOListAcessor.Id.ToString();
                    }

                    if(LOListAcessor.ProcessList)
                    {
                        ItemHudListRow = ItemHudUstList.AddRow();
                        if(LOListAcessor.FoundryProcess == FoundryActionTypes.Salvage) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemUstIcon;}
                        else if(LOListAcessor.FoundryProcess == FoundryActionTypes.Desiccate) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemDesiccantIcon;}
                        else if(LOListAcessor.FoundryProcess == FoundryActionTypes.ManaStone) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemManaStoneIcon;}
                        else {((HudPictureBox)ItemHudListRow[0]).Image = LOListAcessor.Icon;}
                        if(GISettings.RenderMini) {((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.MiniIORString();}
                        else{((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.IORString() + LOListAcessor.Name;}
                        ((HudStaticText)ItemHudListRow[1]).FontHeight = nmenuFontHeight;
                        ((HudPictureBox)ItemHudListRow[2]).Image = GearGraphics.RemoveCircle;
                        ((HudStaticText)ItemHudListRow[3]).Text = LOListAcessor.Id.ToString();
                    }
                }

            }catch(Exception ex){LogError(ex);}
        }
Beispiel #20
0
 static int SortByID(LootObject lhs, LootObject rhs)
 {
     return(lhs.ID.CompareTo(rhs.ID));
 }
Beispiel #21
0
        private void ButlerHudList_Click(object sender, int row, int col)
        {
            try
            {
                ButlerRow = ButlerHudList[row];
                int ItemGuid = Convert.ToInt32(((HudStaticText)ButlerRow[6]).Text);
                LootObject lo = new LootObject(Core.WorldFilter[ItemGuid]);

                if(col == 0)
                {
                    Host.Actions.SelectItem(lo.Id);
                }
                if(col == 1)
                {
                    try
                    {
                        if(GISettings.GSStrings){HudToChat(lo.GSReportString(), 2);}
                        if(GISettings.AlincoStrings){HudToChat(lo.LinkString(),2);}
                    }catch{}
                }
                if(col == 2)
                {
                    Core.Actions.MoveItem(lo.Id, Core.CharacterFilter.Id, 0, false);
                }
                if(col == 3)
                {
                    if(lo.LValue(LongValueKey.Unknown10) == 8)
                    {
                        if(!lo.Name.Contains("Mana Stone") || !lo.Name.Contains("Dessicant"))
                        {
                            Host.Actions.UseItem(lo.Id, 1);
                        }
                    }
                    else
                    {
                        Host.Actions.UseItem(lo.Id, 0);
                    }
                }
                if(col == 4)
                {
                    if(Core.WorldFilter[Core.Actions.CurrentSelection].ObjectClass == ObjectClass.Npc ||  Core.WorldFilter[Core.Actions.CurrentSelection].ObjectClass == ObjectClass.Player)
                    {
                       if(lo.LValue(LongValueKey.EquippedSlots) > 0 || lo.LValue(LongValueKey.Unknown10) == 56)
                       {
                           	WriteToChat("Unequip the item first.");
                       }
                       else
                       {
                       		Host.Actions.GiveItem(lo.Id, Host.Actions.CurrentSelection);
                       }
                    }
                    else
                    {
                        WriteToChat("First select an NPC, Player, or yourself.");
                    }
                }
                if(col == 5)
                {
                    if(bButlerTradeOpen)
                    {
                        Core.Actions.TradeAdd(lo.Id);
                    }
                    else if(Core.WorldFilter.OpenVendor.MerchantId != 0)
                    {
                       if(lo.LValue(LongValueKey.EquippedSlots) > 0 || lo.LValue(LongValueKey.Unknown10) == 56)
                       {
                           	WriteToChat("Unequip the item first.");
                       }
                       else
                       {
                       		Core.Actions.VendorAddSellList(lo.Id);
                       }
                    }
                }
            }
            catch (Exception ex) { LogError(ex); }
            return;
        }
        private void TrophyListCheckItem(ref LootObject IOItem)
        {
            try
            {
                string namecheck = IOItem.Name;
                List<XElement> matches;

                var exact = from XTrophies in mSortedTrophiesList
                    where XTrophies.Element("checked").Value == "true" &&
                    XTrophies.Element("isexact").Value == "true"
                    select XTrophies;

                matches = (from exTrophies in exact
                    where (string)@exTrophies.Element("key").Value == @namecheck
                    select exTrophies).ToList();

                if(IOItem.ObjectClass == ObjectClass.Scroll)
                {
                    if(matches.Count() == 0){return;}
                }

                if(matches.Count() == 0)
                {
                    var notexacttrophies = from XTrophies in mSortedTrophiesList
                    where XTrophies.Element("checked").Value == "true" &&
                    XTrophies.Element("isexact").Value == "false"
                    select XTrophies;

                    matches = (from nxTrophies in notexacttrophies
                        where @namecheck.ToLower().Contains((string)@nxTrophies.Element("key").Value.ToLower())
                        select nxTrophies).ToList();
                }

                if(matches.Count() > 0)
                {
                    int LootMaxCheck;
                    if(!Int32.TryParse(matches.First().Element("Guid").Value, out LootMaxCheck)) {LootMaxCheck = 0;}

                    int InventoryCount = 0;
                    if(Convert.ToBoolean(matches.First().Element("isexact").Value))
                    {
                        var inventorymatches = Core.WorldFilter.GetInventory().Where(x => x.Name == (string)@matches.First().Element("key").Value);
                        if(inventorymatches.Count() == 0)
                        {
                            InventoryCount = 0;
                        }
                        else foreach(WorldObject inv in inventorymatches)
                        {
                            if(!inv.LongKeys.Contains((int)LongValueKey.StackCount)){InventoryCount++;}
                            else{InventoryCount += inv.Values(LongValueKey.StackCount);}
                        }

                    }
                    else
                    {
                        var inventorymatches =  Core.WorldFilter.GetInventory().Where(x => x.Name.Contains((string)@matches.First().Element("key").Value));
                        if(inventorymatches.Count() == 0)
                        {
                            InventoryCount = 0;
                        }
                        else foreach(WorldObject inv in inventorymatches)
                        {
                            if(!inv.LongKeys.Contains((int)LongValueKey.StackCount)){InventoryCount++;}
                            else{InventoryCount += inv.Values(LongValueKey.StackCount);}
                        }
                    }
                    if(LootMaxCheck > 0 && InventoryCount >= LootMaxCheck)
                    {
                        return;
                    }

                    IOItem.IOR = IOResult.trophy;
                }
            } catch(Exception ex){LogError(ex);}
            return;
        }
        private void CheckUnknownScrolls(ref LootObject IOScroll)
        {
            try
            {
                if(!GISettings.CheckForL7Scrolls) {IOScroll.IOR = IOResult.nomatch; return;}
                spellinfo scrollspell = SpellIndex[IOScroll.Spell(0)];

                if(scrollspell.spelllevel != 7) {IOScroll.IOR = IOResult.nomatch; return;}

                switch(scrollspell.spellschool)
                {
                    case "item enchantment":
                        if(ScrollCheck.Item)
                        {
                            if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "creature enchantment":
                        if(ScrollCheck.Creature)
                        {
                            if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "life magic":
                        if(ScrollCheck.Life)
                        {
                            if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "void magic":
                        if(ScrollCheck.Void)
                        {
                            if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "war magic":
                        if(ScrollCheck.War)
                        {
                            if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                }
            } catch(Exception ex){LogError(ex); IOScroll.IOR = IOResult.nomatch; return;}
        }
        private void CheckSalvageItem(ref LootObject IOItemSalvage)
        {
            try
            {
                int Material = (int)IOItemSalvage.Values(ALongValueKeys.Material);
                double SalvageWork = IOItemSalvage.Values(ADoubleValueKeys.SalvageWorkmanship);

                if(IOItemSalvage.Values(ADoubleValueKeys.SalvageWorkmanship) > 0)
                {
                    if(!SalvageMatDictionary.ContainsKey(Material)) {return;}

                    SalvageRule SalvageRuleMatch = SalvageMatDictionary[Material].Where(x => SalvageWork >= x.minwork && SalvageWork <= x.maxwork +0.99).FirstOrDefault();
                    if(SalvageRuleMatch != null)
                    {
                        IOItemSalvage.IOR = IOResult.salvage;
                        IOItemSalvage.MatchingSalvageRule = SalvageRuleMatch;
                    }
                }
            }catch(Exception ex){LogError(ex);}
        }
        private void CheckUnknownScrolls(ref LootObject IOScroll)
        {
            try
            {
                if(!mGeneralSettings.GearInspectorSettings.CheckForL7Scrolls) {IOScroll.IOR = IOResult.nomatch; return;}
                spellinfo scrollspell = tDataTable.SpellIndex[IOScroll.SpellsOnItem.First()];

                if(scrollspell.spelllevel != 7) {IOScroll.IOR = IOResult.nomatch; return;}
                switch(scrollspell.spellschool)
                {
                    case "item enchantment":
                        if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.ItemEnchantment))
                        {
                            if(!AetherCharacter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "creature enchantment":
                        if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.CreatureEnchantment))
                        {
                            if(!AetherCharacter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "life magic":
                        if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.LifeMagic))
                        {
                            if(!AetherCharacter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "void magic":
                        if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.VoidMagic))
                        {
                            if(!AetherCharacter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                    case "war magic":
                        if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.WarMagic))
                        {
                            if(!AetherCharacter.IsSpellKnown(scrollspell.spellid))
                            {
                                IOScroll.IOR = IOResult.spell;
                                return;
                            }
                            else
                            {
                                IOScroll.IOR = IOResult.nomatch;
                                return;
                            }
                        }
                        return;
                }
            } catch(Exception ex){LogError(ex); IOScroll.IOR = IOResult.nomatch; return;}
        }
        private void ManualCheckItemForMatches(LootObject IOItem)
        {
            try
            {
                if(IOItem.Id == LastReportGUID) {return;}
                else{LastReportGUID = IOItem.Id;}

                if(IOItem.ObjectClass == AObjectClass.Scroll){CheckUnknownScrolls(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown){CheckRare(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {TrophyHashCheckItem(ref IOItem);}
                if(IOItem.HasIdData && IOItem.IOR == IOResult.unknown){CheckRulesItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown && mGeneralSettings.FoundrySettings.AutoDessicateJunkLootAetheria && IOItem.Aetheriacheck) {CheckDesiccateAetheria(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown && mGeneralSettings.GearInspectorSettings.IdentifySalvage) {CheckSalvageItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {CheckManaItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {CheckValueItem(ref IOItem);}
                if(IOItem.IOR == IOResult.unknown) {IOItem.IOR = IOResult.nomatch;}

                if(mGeneralSettings.GearInspectorSettings.GSStrings) {ReportStringToChat(IOItem.GSReportString());}
                if(mGeneralSettings.GearInspectorSettings.AlincoStrings){ReportStringToChat(IOItem.LinkString());}

            }catch(Exception ex){LogError(ex);}
        }
        private void CheckValueItem(ref LootObject IOItemVal)
        {
            try
            {
                if(mGeneralSettings.GearInspectorSettings.LootByValue == 0){return;}

                if(IOItemVal.Value >= mGeneralSettings.GearInspectorSettings.LootByValue)
                {
                    if(mGeneralSettings.GearInspectorSettings.SalvageHighValue)
                    {
                        IOItemVal.IOR = IOResult.salvage;
                        IOItemVal.MatchingItemRule = new ItemRule();
                        IOItemVal.MatchingItemRule.RuleName = "Salvage Value";
                    }
                    else
                    {
                        IOItemVal.IOR = IOResult.val;
                    }
                }
            } catch(Exception ex){LogError(ex);}
        }
 private void CheckRare(ref LootObject IOItemRare)
 {
     try
     {
         if(IOItemRare.Values(ALongValueKeys.RareId) > 0)
         {
             IOItemRare.IOR = IOResult.rare;
         }
     }catch(Exception ex){LogError(ex);}
 }
Beispiel #29
0
        private void ValetSuitPiecesList_Click(object sender, int row, int col)
        {
            try
            {
                HudList.HudListRowAccessor ValetRow = ValetSuitPiecesList[row];
                int ItemId = Convert.ToInt32(((HudStaticText)ValetRow[4]).Text);

                if(col == 0)
                {
                    Core.Actions.SelectItem(ItemId);
                }
                if(col == 1)
                {
                    int priorityindex = mValetSuit.SuitPieces.FindIndex(x => x.ItemId == ItemId);
                    mValetSuit.SuitPieces[priorityindex].Priority++;
                    if(mValetSuit.SuitPieces[priorityindex].Priority > 9)
                    {
                        mValetSuit.SuitPieces[priorityindex].Priority = 1;
                    }
                }
                if(col == 2)
                {
                    LootObject tLootObj = new LootObject(AetherObjects.Collection[ItemId]);
                    if(mGeneralSettings.GearInspectorSettings.GSStrings){HudToChat(tLootObj.GSReportString(),2);}
                    if(mGeneralSettings.GearInspectorSettings.AlincoStrings){HudToChat(tLootObj.LinkString(),2);}
                }
                if(col == 3)
                {
                    int RemoveIndex = mValetSuit.SuitPieces.FindIndex(x => x.ItemId == ItemId);
                    mValetSuit.SuitPieces.RemoveAt(RemoveIndex);

                    if(mValetSuit.SuitPieces.Count == 0)
                    {
                        mCharacterSettings.ValetSuitList.RemoveAll(x => x.TicketStub == mValetSuit.TicketStub);
                    }
                    if(mCharacterSettings.ValetSuitList.Count > 0)
                    {
                        mValetSuit = mCharacterSettings.ValetSuitList.First();
                    }
                    else
                    {
                        mValetSuit = null;
                    }
                }
                UpdateValetHud();

            }catch(Exception ex){LogError(ex);}
        }
        private void CheckValueItem(ref LootObject IOItemVal)
        {
            try
            {
                if(GISettings.LootByValue == 0){return;}

                if(IOItemVal.LValue(LongValueKey.Value) >= GISettings.LootByValue)
                {
                    if(GISettings.SalvageHighValue)
                    {
                        IOItemVal.IOR = IOResult.salvage;
                        IOItemVal.rulename = "Value";
                    }
                    else
                    {
                        IOItemVal.IOR = IOResult.val;
                    }
                }
            } catch(Exception ex){LogError(ex);}
        }
        private bool MatchAdvanced(ItemRule rule, LootObject item)
        {
            bool result = false;
            bool[] tumbler = {false,false,false,false,false};
            List<int> ands = new List<int>();

            try
            {
                for(int i = 0; i < rule.Advanced.Count; i ++)
                {
                    if(rule.Advanced[i].keylink == 1) {ands.Add(i);}

                    if(rule.Advanced[i].keytype == 0)
                    {
                        switch(rule.Advanced[i].keycompare)
                        {
                            case 0:
                                if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 1:
                                if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 2:
                                if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 3:
                                if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                        }
                    }
                    else if(rule.Advanced[i].keytype == 1)
                    {
                        switch(rule.Advanced[i].keycompare)
                        {
                            case 0:
                                if(item.Values((ALongValueKeys)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 1:
                                if(item.Values((ALongValueKeys)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 2:
                                if(item.Values((ALongValueKeys)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                            case 3:
                                if(item.Values((ALongValueKeys)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;}
                                break;
                        }
                    }
                }

                switch(rule.Advanced.Count)
                {
                    case 1:  //2 ^ 0 == 1
                        if(tumbler[0]) {result = true;}
                        break;
                    case 2:  //2 ^ 1 == 2
                        if(rule.Advanced[0].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1]) {result = true;}
                        }
                        break;
                    case 3:  //2 ^ 2 == 4
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2]) {result = true;}
                        }
                        break;
                    case 4:  //2 ^ 3 == 8
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3])) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3]) {result = true;}
                        }
                        else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;}
                        }
                        break;
                    case 5:  //2 ^ 4 == 16
                        // 0 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4]) {result = true;}
                        }

                        // 1 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }

                        // 2 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3]) ||  tumbler[4]) {result = true;}
                        }

                        // 3 Or
                        if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;}
                        }
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;}
                        }

                        // 4 Or
                        if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2)
                        {
                            if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;}
                        }

                        break;
                }
            }catch(Exception ex){LogError(ex);}
            return result;
        }
 private void SendVTIOtoCallBack(LootObject VTIO)
 {
     try
     {
         if(WaitingVTIOs.Count == 0)
         {
             Core.RenderFrame -= DoesVTIOHaveID;
             return;
         }
     }catch(Exception ex){LogError(ex);}
 }
        private void btnReportPalettes_Hit(object sender, EventArgs e)
        {
            try
            {

                lblCurrentPalette0.Text = String.Empty;
                lblCurrentPalette1.Text = String.Empty;
                lblCurrentPalette2.Text = String.Empty;
                lblCurrentPalette3.Text = String.Empty;
                lblCurrentPalette4.Text = String.Empty;
                lblCurrentPalette5.Text = String.Empty;
                lblCurrentPalette.Text = "C. Sel. Pals.";

                if(Core.Actions.CurrentSelection == 0)
                {
                    WriteToChat("First select an item to report.");
                }
                AetherObject ao = AetherObjects.Collection[Core.Actions.CurrentSelection];
                LootObject lo = new LootObject(ao);
                WriteToChat("Item Name: " + lo.Name);
                if(tDataTable.ArmorIndex.Any(x => x.ID == lo.ArmorType))
                {
                    WriteToChat("Armor Type: " + tDataTable.ArmorIndex.Find(x => x.ID == lo.ArmorType).name);
                    lblCurrentPalette.Text = tDataTable.ArmorIndex.Find(x => x.ID == lo.ArmorType).name;

                }
                else
                {
                    WriteToChat("Item Type: " + lo.ObjectClass.ToString());
                    lblCurrentPalette.Text = lo.ObjectClass.ToString();
                }

                for(int i = 0; i < ao.Palettes.Count; i++)
                {
                    if(i == 0)
                    {
                        lblCurrentPalette0.Text = ao.Palettes[i].ToString();
                        WriteToChat("Palette 0: " + ao.Palettes[i]);
                    }
                    if(i == 1)
                    {
                        lblCurrentPalette1.Text = ao.Palettes[1].ToString();
                        WriteToChat("Palette 1: " + ao.Palettes[1]);
                    }
                    if(i == 2)
                    {
                        lblCurrentPalette2.Text = ao.Palettes[2].ToString();
                        WriteToChat("Palette 2: " + ao.Palettes[2]);
                    }
                    if(i == 3)
                    {
                        lblCurrentPalette3.Text = ao.Palettes[3].ToString();
                        WriteToChat("Palette 3: " + ao.Palettes[3]);
                    }
                    if(i == 4)
                    {
                        lblCurrentPalette4.Text = ao.Palettes[4].ToString();
                        WriteToChat("Palette 4: " + ao.Palettes[4]);
                    }
                    if(i == 5)
                    {
                        lblCurrentPalette5.Text = ao.Palettes[5].ToString();
                        WriteToChat("Palette 5: " + ao.Palettes[5]);
                    }
                }

            }catch(Exception ex){LogError(ex);}
        }
        public int VTLinkDecision(int id, int reserved1, int reserved2)
        {
            try
            {
                //If VT shoots in a corpse ID, check if it has a rare on it.  If so, Loot, if not, skip.
                if(reserved2 == 1)
                {
                    if(CorpseTrackingList.Any(x => x.IOR == IOResult.corpsewithrare) && reserved1 == CorpseTrackingList.Find(x => x.IOR == IOResult.corpsewithrare).Id)
                    {
                        return 1;
                    }
                    else
                    {
                        return 0;
                    }
                }

                try
                {
                    if(LOList.Any(x => x.Id == id && x.InspectList))
                    {
                        switch(LOList.Find(x => x.Id == id).IOR)
                        {
                            case IOResult.rule:
                            case IOResult.manatank:
                            case IOResult.rare:
                            case IOResult.spell:
                            case IOResult.trophy:
                            case IOResult.dessicate:
                                return 1;
                            case IOResult.salvage:
                                return 2;
                            case IOResult.val:
                                if(GISettings.SalvageHighValue) {return 2;}
                                else{return 1;}
                            default:
                                return 0;
                        }
                    }
                }catch(Exception ex){LogError(ex);}

                LootObject VTIO = new LootObject(Core.WorldFilter[id]);

                if(!VTIO.HasIdData)
                {
                    Core.RenderFrame += DoesVTIOHaveID;
                    WaitingVTIOs.Add(VTIO);
                    SendVTIOtoCallBack(VTIO);

                }

                CheckRulesItem(ref VTIO);

                if(VTIO.IOR == IOResult.unknown) {CheckRare(ref VTIO);}
                if(VTIO.ObjectClass == ObjectClass.Scroll){CheckUnknownScrolls(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {TrophyListCheckItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown && GISettings.IdentifySalvage) {CheckSalvageItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {CheckManaItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {CheckValueItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {VTIO.IOR = IOResult.nomatch;}

                switch(VTIO.IOR)
                {
                    case IOResult.rule:
                    case IOResult.manatank:
                    case IOResult.rare:
                    case IOResult.spell:
                    case IOResult.trophy:
                    case IOResult.dessicate:
                        return 1;
                    case IOResult.salvage:
                        return 2;
                    case IOResult.val:
                        return 1;
                    default:
                        return 0;
                }
            }catch(Exception ex){LogError(ex); return 0;}
        }
        private void ButlerHudList_Click(object sender, int row, int col)
        {
            try
            {
                ButlerRow = ButlerHudList[row];
                int ItemGuid = Convert.ToInt32(((HudStaticText)ButlerRow[6]).Text);
                LootObject lo = new LootObject(AetherObjects.Collection[ItemGuid]);

                if(col == 0)
                {
                    Host.Actions.SelectItem(lo.Id);
                }
                if(col == 1)
                {
                    if(mGeneralSettings.EnabledHudSettings.bGearInspectorEnabled)
                    {
                        Core.Actions.SelectItem(lo.Id);
                        Core.Actions.RequestId(lo.Id);
                    }
                    else
                    {
                        if(mGeneralSettings.GearInspectorSettings.GSStrings){HudToChat(lo.GSReportString(),2);}
                        if(mGeneralSettings.GearInspectorSettings.AlincoStrings){HudToChat(lo.LinkString(),2);}
                    }
               			}
                if(col == 2)
                {
                    Core.Actions.MoveItem(lo.Id, AetherCharacter.CharStats.Id, 0, false);
                }
                if(col == 3 && !mButlerFilters.storage)
                {
                    if(Core.Actions.OpenedContainer == 0 || AetherObjects.Collection[Core.Actions.OpenedContainer].Name != "Storage")
                    {
                        WriteToChat("No storage container opened.");
                    }
                    else
                    {
                        Foundry_LoadAction(FoundryActionTypes.AddToStorage, lo.Id);
                    }
                }
                if(col == 4 && !mButlerFilters.storage)
                {
                    if(AetherObjects.Collection[Core.Actions.CurrentSelection].ObjectClass == AObjectClass.Npc ||  AetherObjects.Collection[Core.Actions.CurrentSelection].ObjectClass == AObjectClass.Player)
                    {
                       if(lo.Values(ALongValueKeys.EquippedSlots) > 0 || lo.Values(ALongValueKeys.Unknown10) == 56)
                       {
                           	WriteToChat("Unequip the item first.");
                       }
                       else
                       {
                       		Host.Actions.GiveItem(lo.Id, Host.Actions.CurrentSelection);
                       }
                    }
                    else
                    {
                        WriteToChat("First select an NPC, Player, or yourself.");
                    }
                }
                if(col == 5 && !mButlerFilters.storage)
                {
                    if(AetherTrade.TradeWindow.InTrade)
                    {
                        Core.Actions.TradeAdd(lo.Id);
                    }
                    else if(AetherTrade.VendorId != 0)
                    {
                       if(lo.Values(ALongValueKeys.EquippedSlots) > 0 || lo.Values(ALongValueKeys.Unknown10) == 56)
                       {
                           	WriteToChat("Unequip the item first.");
                       }
                       else
                       {
                       		Core.Actions.VendorAddSellList(lo.Id);
                       }
                    }
                }
            }
            catch (Exception ex) { LogError(ex); }
        }
Beispiel #36
0
        private void ValetSuitPiecesList_Click(object sender, int row, int col)
        {
            try
            {
                ValetRow = ValetSuitPiecesList[row];
                if(col == 0)
                {
                    Core.Actions.SelectItem(Convert.ToInt32(((HudStaticText)ValetRow[3]).Text));
                }
                if(col == 1)
                {
                    LootObject tLootObj = new LootObject(Core.WorldFilter[Convert.ToInt32(((HudStaticText)ValetRow[3]).Text)]);
                    if(GISettings.GSStrings){tLootObj.GSReportString();}
                    if(GISettings.AlincoStrings){tLootObj.LinkString();}
                }
                if(col == 2)
                {
                    GearButlerSettings.ValetSuitList[ValetCurrentSuit].SuitPieces.RemoveAll(x => x.ItemId == Convert.ToInt32(((HudStaticText)ValetRow[3]).Text));
                    if(GearButlerSettings.ValetSuitList[ValetCurrentSuit].SuitPieces.Count == 0)
                    {
                        GearButlerSettings.ValetSuitList.RemoveAll(x => x.TicketStub == ValetCurrentSuit);
                    }
                    if(GearButlerSettings.ValetSuitList.Count > 0 && !GearButlerSettings.ValetSuitList.Any(x => x.TicketStub == ValetCurrentSuit))
                    {
                        ValetCurrentSuit = GearButlerSettings.ValetSuitList.First().TicketStub;
                    }
                    else
                    {
                        ValetCurrentSuit = 0;
                    }
                }
                UpdateValetHud();

            }catch(Exception ex){LogError(ex);}
        }
        public int VTLinkDecision(int id, int reserved1, int reserved2)
        {
            try
            {
                //If VT shoots in a corpse ID, check if it has a rare on it.  If so, Loot, if not, skip.
                if(reserved2 == 1)
                {
                    if(CorpseTrackingList.Any(x => x.IOR == IOResult.corpsewithrare) && reserved1 == CorpseTrackingList.Where(x => x.IOR == IOResult.corpsewithrare).First().Id)
                    {
                        return 1;
                    }
                    else
                    {
                        return 0;
                    }
                }

                try
                {
                    LootObject lo = LOHash.Where(x => x.Id == id && x.InspectList).FirstOrDefault();
                    if(lo != null)
                    {
                        switch(lo.IOR)
                        {
                            case IOResult.rule:
                            case IOResult.rare:
                            case IOResult.spell:
                            case IOResult.trophy:
                            case IOResult.dessicate:
                                return 1;
                            case IOResult.salvage:
                                return 2;
                            case IOResult.val:
                                if(mGeneralSettings.GearInspectorSettings.SalvageHighValue) {return 2;}
                                else{return 1;}
                            default:
                                return 0;
                        }
                    }
                }catch(Exception ex){LogError(ex);}

                LootObject VTIO = new LootObject(AetherObjects.Collection[id]);

                if(!VTIO.HasIdData)
                {
                    Core.RenderFrame += DoesVTIOHaveID;
                    WaitingVTIOs.Add(VTIO);
                    SendVTIOtoCallBack(VTIO);

                }

                CheckRulesItem(ref VTIO);

                if(VTIO.IOR == IOResult.unknown) {CheckRare(ref VTIO);}
                if(VTIO.ObjectClass == AObjectClass.Scroll){CheckUnknownScrolls(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {TrophyHashCheckItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown && mGeneralSettings.FoundrySettings.AutoDessicateJunkLootAetheria && VTIO.Aetheriacheck) {CheckDesiccateAetheria(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown && mGeneralSettings.GearInspectorSettings.IdentifySalvage) {CheckSalvageItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {CheckManaItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {CheckValueItem(ref VTIO);}
                if(VTIO.IOR == IOResult.unknown) {VTIO.IOR = IOResult.nomatch;}

                switch(VTIO.IOR)
                {
                    case IOResult.rule:
                    case IOResult.rare:
                    case IOResult.spell:
                    case IOResult.trophy:
                    case IOResult.dessicate:
                        return 1;
                    case IOResult.salvage:
                        return 2;
                    case IOResult.val:
                        return 1;
                    default:
                        return 0;
                }
            }catch(Exception ex){LogError(ex); return 0;}
        }
Beispiel #38
0
        //else if (n < m )
        //{
        //    try{
        //    { GearFoundry.PluginCore.WriteToChat("Inventory remaining to be ID'd: " + s); }
        //       m = n;
        //      // string mname = null;
        //       InventoryProcess = DateTime.Now;
        //       if (mWaitingForID.Count > 0)
        //       {
        //           //if (binventoryWaitingEnabled)
        //           //{
        //           //    for (int i = 0; i < n; i++)
        //           //    {
        //           //        mname = mWaitingForID[i].Name;
        //           //        GearFoundry.PluginCore.WriteToChat(mname);
        //           //    }
        //           //}
        //           mDoWait();
        //       }
        //   }
        //    catch (Exception ex) { LogError(ex); }
        //}
        //        }
        //    catch (Exception ex) { LogError(ex); }
        //}
        //DateTime InventoryProcess = DateTime.MinValue;
        // public void mDoWait()
        //{
        //    try
        //    {
        //           Core.RenderFrame += new EventHandler<EventArgs>(RenderFrame_processInventory);
        //    }
        //    catch (Exception ex) { LogError(ex); }
        //}
        //public void RenderFrame_processInventory(object sender, EventArgs e)
        //{
        //    try
        //    {
        //        if ((DateTime.Now - InventoryProcess).TotalSeconds > 10)
        //        {
        //            for (int n = 0; n < mWaitingForID.Count; n++)
        //            {
        //                try
        //                {
        //                    if (mWaitingForID[n] != null && mWaitingForID[n].HasIdData)
        //                    {
        //                        Core.RenderFrame -= new EventHandler<EventArgs>(RenderFrame_processInventory);
        //                        ProcessDataInventory();
        //                        mIsFinished();
        //                    }
        //                }
        //                catch (Exception ex) { }
        //            }
        //        }
        //    }
        //    catch (Exception ex) { LogError(ex); }
        //}
        //This is routine that puts the data of an obj into the inventory file xml
        private void ProcessDataInventory()
        {
            for (int n = 0; n < mWaitingForID.Count; n++)
            {
                try
                {
                    if (mWaitingForID[n] != null && mWaitingForID[n].HasIdData)
                    {
                        currentobj = mWaitingForID[n];
                        mWaitingForID.Remove(mWaitingForID[n]);
                        objClassName = currentobj.ObjectClass.ToString();
                        objName = currentobj.Name;
                        objID = currentobj.Id;
                        objIcon = currentobj.Icon;
                        LootObject whatsmygearscore = new LootObject(currentobj);
                        objGearScore = whatsmygearscore.GearScore;
                        long objDesc = currentobj.Values(LongValueKey.DescriptionFormat);
                        long objMat = currentobj.Values(LongValueKey.Material);
                        long objCatType = (int)currentobj.Values(LongValueKey.Category);
                        long objAtt = (int)currentobj.Values(LongValueKey.Attuned);
                        long objBnd = (int)currentobj.Values(LongValueKey.Bonded);
                        long objToonLevel = (long)currentobj.Values((LongValueKey)NewLongKeys.WieldReqValue2);
                        long objLore = (int)currentobj.Values(LongValueKey.LoreRequirement);
                        long objAl = (int)currentobj.Values(LongValueKey.ArmorLevel);
                        long objType = (int)currentobj.Values(LongValueKey.Type);
                        long objTinks = (int)currentobj.Values(LongValueKey.NumberTimesTinkered);
                        long objWork = (int)currentobj.Values(LongValueKey.Workmanship);
                        long objSet = (int)currentobj.Values(LongValueKey.ArmorSet);
                        long objCovers = currentobj.Values(LongValueKey.Coverage);
                        long objEqSlot = currentobj.Values(LongValueKey.EquipableSlots);
                        long objCleaveType = (int)currentobj.Values(LongValueKey.CleaveType);
                        long objElemDmg = (int)currentobj.Values(LongValueKey.ElementalDmgBonus);
                        long objEmbue = (int)currentobj.Values(LongValueKey.Imbued);
                        long objSlayer = (int)currentobj.Values(LongValueKey.SlayerSpecies);
                        long objWieldAttrInt = (int)currentobj.Values(LongValueKey.WieldReqAttribute);
                        long objWieldType = (int)currentobj.Values(LongValueKey.WieldReqType);
                        long objWieldValue = (int)currentobj.Values(LongValueKey.WieldReqValue);
                         long objDamage = (int)currentobj.Values(LongValueKey.DamageType);
                        long objMissType = (int)currentobj.Values(LongValueKey.MissileType);
                        long objSkillLevReq = (int)currentobj.Values(LongValueKey.SkillLevelReq);
                        double objElemvsMons = currentobj.Values(DoubleValueKey.ElementalDamageVersusMonsters);
                        double objMelD = currentobj.Values(DoubleValueKey.MeleeDefenseBonus);
                        double objMagicD = currentobj.Values(DoubleValueKey.MagicDBonus);
                        double objManaC = currentobj.Values(DoubleValueKey.ManaCBonus);
                        double objMissileD = currentobj.Values(DoubleValueKey.MissileDBonus);
                        double objSalvWork = currentobj.Values(DoubleValueKey.SalvageWorkmanship);
                        double objAttack = currentobj.Values(DoubleValueKey.AttackBonus);
                        double objDamageBonus = currentobj.Values(DoubleValueKey.DamageBonus);
                        double objAcid = currentobj.Values(DoubleValueKey.AcidProt);
                        double objLight = currentobj.Values(DoubleValueKey.LightningProt);
                        double objFire = currentobj.Values(DoubleValueKey.FireProt);
                        double objCold = currentobj.Values(DoubleValueKey.ColdProt);
                        double objBludg = currentobj.Values(DoubleValueKey.BludgeonProt);
                        double objSlash = currentobj.Values(DoubleValueKey.SlashProt);
                        double objPierce = currentobj.Values(DoubleValueKey.PierceProt);
                        long objMastery = currentobj.Values(LongValueKey.ActivationReqSkillId);
                        long objMaxDamage = currentobj.Values(LongValueKey.MaxDamage);
                        double objVariance = currentobj.Values(DoubleValueKey.Variance);
                        objSpellXml = GoGetSpells(currentobj);
                        long objMagicDam = currentobj.Values(LongValueKey.WandElemDmgType);
                        long objRareID = currentobj.Values(LongValueKey.RareId);
                        long objBurden = currentobj.Values(LongValueKey.Burden);
                        long objStackCount = currentobj.Values(LongValueKey.StackCount);
                        long objModel = currentobj.Values(LongValueKey.Model);
                        long iconUnderlay = currentobj.Values(LongValueKey.IconUnderlay);
                        long iconOverlay = currentobj.Values(LongValueKey.IconUnderlay);
                        long iconOutline = currentobj.Values(LongValueKey.IconOutline);
                        long objFlags = currentobj.Values(LongValueKey.Flags);
                        long objCreateFlag1 = currentobj.Values(LongValueKey.CreateFlags1);
                        long objCreateFlag2 = currentobj.Values(LongValueKey.CreateFlags2);
                        long objUnknown10 = currentobj.Values(LongValueKey.Unknown10);
                        long objUnknown100000 = currentobj.Values(LongValueKey.Unknown100000);
                        long objUnknown800000 = currentobj.Values(LongValueKey.Unknown800000);
                        long objUnknown8000000 = currentobj.Values(LongValueKey.Unknown8000000);
                        long objUsageMask = currentobj.Values(LongValueKey.UsageMask);
                        long objEnchant = currentobj.Values(LongValueKey.Unenchantable);
                        long objColor = currentobj.Values(LongValueKey.Model);

                            xdocToonInventory.Element("Objs").Add(new XElement("Obj",
                            new XElement("ObjName", objName),
                            new XElement("ObjID", objID),
                            new XElement("ToonName", toonName),
                            new XElement("ObjIcon", objIcon),
                            new XElement("GearScore",objGearScore),
                            new XElement("ObjClass", objClassName),
                            new XElement("ObjDesc", objDesc),
                            new XElement("ObjMaterial", objMat),
                            new XElement("ObjAl", objAl),
                            new XElement("ObjSet", objSet),
                            new XElement("ObjCovers", objCovers),
                            new XElement("ObjEqSlot", objEqSlot),
                            new XElement("ObjToonLevel", objToonLevel),
                            new XElement("ObjLoreReq", objLore),
                            new XElement("ObjSkillLevReq", objSkillLevReq),
                            new XElement("ObjWork", objWork),
                            new XElement("ObjTink", objTinks),
                            new XElement("ObjCatType", objCatType),
                            new XElement("ObjCleaveType", objCleaveType),
                            new XElement("ObjMissType", objMissType),
                            new XElement("ObjType", objType),
                            new XElement("ObjElemDmg", objElemDmg),
                            new XElement("ObjAtt", objAtt),
                            new XElement("ObjBnd", objBnd),
                            new XElement("ObjEmbue", objEmbue),
                            new XElement("ObjSlayer", objSlayer),
                            new XElement("ObjWieldAttr", objWieldAttrInt),
                            new XElement("ObjWieldType", objWieldType),
                            new XElement("ObjWieldValue", objWieldValue),
                            new XElement("ObjDamage", objDamage),
                            new XElement("ObjElemvsMons", objElemvsMons),
                            new XElement("ObjMelD", objMelD),
                            new XElement("ObjMagicD", objMagicD),
                            new XElement("ObjManaC", objManaC),
                            new XElement("ObjMissileD", objMissileD),
                            new XElement("ObjSalvWork", objSalvWork),
                            new XElement("ObjAttack", objAttack),
                            new XElement("ObjDamageBonus", objDamageBonus),
                            new XElement("ObjMaxDamage", objMaxDamage),
                            new XElement("ObjVariance", objVariance),
                            new XElement("ObjMastery", objMastery),
                            new XElement("ObjSpellXml", objSpellXml),
                            new XElement("ObjMagicDamage", objMagicDam),
                            new XElement("ObjBurden", objBurden),
                            new XElement("ObjStackCount", objStackCount),
                            new XElement("ObjAcid", objAcid),
                            new XElement("ObjLight", objLight),
                            new XElement("ObjFire", objFire),
                            new XElement("ObjCold", objCold),
                            new XElement("ObjBludg", objBludg),
                            new XElement("ObjSlash", objSlash),
                            new XElement("ObjPierce", objPierce),
                            new XElement("ObjRareID", objRareID),
                            new XElement("IconOverlay", iconOverlay),
                            new XElement("IconOutline", iconOutline),
                            new XElement("IconUnderlay", iconUnderlay),
                            new XElement("ObjFlags", objFlags),
                            new XElement("ObjCreateFlag1", objCreateFlag1),
                            new XElement("ObjCreateFlag2", objCreateFlag2),
                            new XElement("ObjUnknown10", objEnchant),
                            new XElement("ObjUnknown100000", objColor),
                            new XElement("ObjUnknown800000", objUnknown800000),
                            new XElement("ObjUnknown8000000", objUnknown8000000),
                            new XElement("ObjUsageMask", objUsageMask)));

                            currentobj = null;
                            objClassName = null;
                            objName = null;
                            objDesc = 0;
                            objID = 0;
                            objIcon = 0;
                            objGearScore = 0;
                            objColor = 0;

                            objAl = 0;
                            objSet = 0;
                            objMat = 0;
                            objCovers = 0;
                            objToonLevel = 0;
                            objLore = 0;
                            objSkillLevReq = 0;
                            objTinks = 0;
                            objWork = 0;
                            objCatType = 0;
                            objCleaveType = 0;
                            objMissType = 0;
                            objType = 0;
                            objElemDmg = 0;
                            objMastery = 0;

                            objAtt = 0;
                            objBnd = 0;
                            objEmbue = 0;
                            objSlayer = 0;
                            objWieldAttrInt = 0;
                            objWieldType = 0;
                            objWieldValue = 0;
                            objDamage = 0;
                            objElemvsMons = 0;
                            objMelD = 0;
                            objMagicD = 0;
                            objManaC = 0;
                            objMissileD = 0;
                            objSalvWork = 0;
                            objAttack = 0;
                            objDamageBonus = 0;
                            objEqSlot = 0;
                            objVariance = 0;
                            objMaxDamage = 0;
                            objSpellXml = null;

                            objMagicDam = 0;
                            objRareID = 0;
                            objBurden = 0;
                            objStackCount = 0;
                            objAcid = 0;
                            objLight = 0;
                            objFire = 0;
                            objCold = 0;
                            objBludg = 0;
                            objSlash = 0;
                            objPierce = 0;

                            objModel = 0;

                            iconOverlay = 0;
                            iconUnderlay = 0;
                            iconOutline = 0;

                            objFlags = 0;
                            objCreateFlag1 = 0;
                            objCreateFlag2 = 0;
                            objUnknown10 = 0;
                            objUnknown100000 = 0;
                            objUnknown800000 = 0;
                            objUnknown8000000 = 0;
                            objUsageMask = 0;
                        }
                    } // end of try

                catch (Exception ex) { LogError(ex);  }

            } // end of for

            if (mWaitingForID.Count == 0) { mIsFinished(); }
            else if (mWaitingForID.Count < 4) { WriteToChat("Inventory waiting to be id'd: " + mWaitingForID.Count.ToString()); }
            else if (mWaitingForID.Count % 25 == 0) { WriteToChat("Inventory waiting to be id'd: " + mWaitingForID.Count.ToString()); }
        }