コード例 #1
0
        private void CreateEntry(StreamWriter fs, SaintCoinach.Xiv.Item item)
        {
            string[] itemStr = new string[item.SourceRow.Sheet.Header.ColumnCount];
            int itemStrIndex = 0;

            foreach (var col in item.SourceRow.Sheet.Header.Columns)
            {
                // insert col key, {"name"} :
                itemStr[itemStrIndex] += WrapStringInBrackets(WrapStringInQuotes(col.Name));
                itemStr[itemStrIndex] += ":";

                // insert col key, {"name"} :
                var colRaw = item.ColumnValues().ElementAt(itemStrIndex);
                if (colRaw == null)
                {
                    itemStr[itemStrIndex] += WrapStringInBrackets("null");
                }
                else if (colRaw.GetType().Equals(typeof(SaintCoinach.Text.XivString)))
                {
                    // insert col child(ren), {"name"} : {"Water Crystal"}
                    SaintCoinach.Text.XivString colVal = (SaintCoinach.Text.XivString)colRaw;
                    itemStr[itemStrIndex] += CreateFormattedStringWithBracketEnclosement(colVal.Children);
                }
                else
                {
                    itemStr[itemStrIndex] += WrapStringInBrackets(WrapStringInQuotes(colRaw.ToString()));
                }
                itemStrIndex++;
            }
            finalizeWriteToFile(fs, itemStr);
        }
コード例 #2
0
        public static int GetPatchCategory(SaintCoinach.Xiv.Item item)
        {
            if (Hacks.IsItemSkipped(item.Name, item.Key))
            {
                return(-1);
            }

            if (item.ItemAction is SaintCoinach.Xiv.ItemActions.MountUnlock)
            {
                return(17);
            }

            if (item.ItemAction is SaintCoinach.Xiv.ItemActions.CompanionUnlock)
            {
                return(11);
            }

            var equipment = item as SaintCoinach.Xiv.Items.Equipment;

            // PvP Equipment
            if (equipment != null && equipment.IsPvP)
            {
                return(18);
            }

            // Fixed categories
            if (ItemPatchCategoryByUICategory.TryGetValue(item.ItemUICategory.Key, out var category))
            {
                return(category);
            }

            // Equipment by parameters
            if (equipment != null)
            {
                // Check parameters for accessories.
                foreach (var param in equipment.AllParameters)
                {
                    var attrCategory = GetAttributePatchCategory(param.BaseParam);
                    if (attrCategory != null && attrCategory.Value != 19)
                    {
                        return(attrCategory.Value);
                    }
                }

                // Remaining soul crystals
                if (equipment.ItemUICategory.Key == 62)
                {
                    return(0);
                }

                // No discernable parameters - Glamour.
                return(3);
            }

            // If you're reading this update the ItemPatchCategoryByUICategory map at the top of this file.
            throw new NotImplementedException($"Unknown patch category for {item.Name} ({item.Key}), ItemUICategory {item.ItemUICategory.Key}");
        }
コード例 #3
0
        public Item(Player player, SaintCoinach.Xiv.Item entry, ulong guid, uint stackSize = 1u)
        {
            Debug.Assert(player != null);
            Debug.Assert(entry != null);

            owner     = player;
            Entry     = entry;
            Guid      = guid;
            StackSize = stackSize;
        }
コード例 #4
0
        public int CompareEquipLevel(SaintCoinach.Xiv.Item x, SaintCoinach.Xiv.Item y)
        {
            int ex = 0;
            int ey = 0;

            if (x is SaintCoinach.Xiv.Items.Equipment)
            {
                ex = ((SaintCoinach.Xiv.Items.Equipment)x).EquipmentLevel;
            }
            if (y is SaintCoinach.Xiv.Items.Equipment)
            {
                ey = ((SaintCoinach.Xiv.Items.Equipment)y).EquipmentLevel;
            }
            return(((int)EquipLevelOption) * ex.CompareTo(ey));
        }
コード例 #5
0
 public int CompareCategoryMajor(SaintCoinach.Xiv.Item x, SaintCoinach.Xiv.Item y)
 {
     return(((int)CategoryOption) * x.ItemUICategory.MajorOrder.CompareTo(y.ItemUICategory.MajorOrder));
 }
コード例 #6
0
 public int CompareItemLevel(SaintCoinach.Xiv.Item x, SaintCoinach.Xiv.Item y)
 {
     return(((int)ItemLevelOption) * x.ItemLevel.Key.CompareTo(y.ItemLevel.Key));
 }