Esempio n. 1
0
        /// <summary>
        /// Sets a flag in this type.
        /// </summary>
        /// <param name="flag">The flag to set in the type.</param>
        public void SetFlag(ItemFlag flag)
        {
            if (this.Locked)
            {
                throw new InvalidOperationException($"This ItemType is locked and cannot be altered. {nameof(this.SetFlag)}({nameof(flag)}={flag}");
            }

            this.Flags.Add(flag);
        }
Esempio n. 2
0
        public void SetFlag(ItemFlag flag)
        {
            if (Locked)
            {
                throw new InvalidOperationException("This ItemType is locked and cannot be altered.");
            }

            Flags.Add(flag);
        }
Esempio n. 3
0
        public bool ItemHasFlag(D2Unit item, ItemFlag flag)
        {
            var itemData = GetItemData(item);

            if (itemData == null)
            {
                return(false);
            }

            return(itemData.ItemFlags.HasFlag(flag));
        }
Esempio n. 4
0
 public bool this[ItemFlag flag]
 {
     get
     {
         return(((ItemFlag)this.m_Value & flag) != (ItemFlag)0);
     }
     set
     {
         if (value)
         {
             this.m_Value |= (int)flag;
         }
         else
         {
             this.m_Value &= (int)~flag;
         }
     }
 }
Esempio n. 5
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="reader"></param>
 public Item(ushort index, BinaryReader reader)
 {
     byte b;
     UnidentifiedNameId = reader.ReadByte();
     IdentifiedNameId = reader.ReadByte();
     b = reader.ReadByte();
     Flags = (ItemFlag)(b & 0xE0);
     Charges = (byte)(b & 0x1F);
     Picture = reader.ReadByte();
     ItemTypeID = reader.ReadByte();
     SubPosition = reader.ReadByte();
     Location = Location.FromValue(reader.ReadUInt16());
     Unk0 = reader.ReadUInt16();
     Unk1 = reader.ReadUInt16();
     Level = reader.ReadByte();
     Value = reader.ReadSByte();
     Index = index;
 }
Esempio n. 6
0
 public bool this[ItemFlag flag]
 {
     get
     {
         int num = (int)flag;
         return((this.m_Value & flag) != 0);
     }
     set
     {
         if (value)
         {
             this.m_Value |= flag;
         }
         else
         {
             this.m_Value &= ~flag;
         }
     }
 }
Esempio n. 7
0
 public bool this[ItemFlag flag]
 {
     get
     {
         int num = (int) flag;
         return ((this.m_Value & flag) != 0);
     }
     set
     {
         if (value)
         {
             this.m_Value |= flag;
         }
         else
         {
             this.m_Value &= ~flag;
         }
     }
 }
Esempio n. 8
0
        public static bool Open(string filename, ref ServerItemList items)
        {
            FileStream fileStream = new FileStream(filename, FileMode.Open);

            try
            {
                using (OtbLoader reader = new OtbLoader(fileStream))
                {
                    //get root node
                    BinaryReader nodeReader = reader.getRootNode();
                    if (nodeReader == null)
                    {
                        return(false);
                    }

                    nodeReader.ReadByte();                     //first byte of otb is 0
                    nodeReader.ReadUInt32();                   //4 bytes flags, unused

                    byte attr = nodeReader.ReadByte();
                    if ((RootAttribute)attr == RootAttribute.ROOT_ATTR_VERSION)
                    {
                        UInt16 datalen = nodeReader.ReadUInt16();
                        if (datalen != 140)                         // 4 + 4 + 4 + 1 * 128
                        {
                            Trace.WriteLine(String.Format("Size of version header is invalid, updated .otb version?"));
                            return(false);
                        }

                        items.dwMajorVersion = nodeReader.ReadUInt32();                         //major, file version
                        items.dwMinorVersion = nodeReader.ReadUInt32();                         //minor, client version
                        items.dwBuildNumber  = nodeReader.ReadUInt32();                         //build number, revision
                        nodeReader.BaseStream.Seek(128, SeekOrigin.Current);
                    }

                    nodeReader = reader.getChildNode();
                    if (nodeReader == null)
                    {
                        return(false);
                    }

                    do
                    {
                        ServerItem item = new ServerItem();

                        byte itemGroup = nodeReader.ReadByte();

                        switch ((ItemGroup)itemGroup)
                        {
                        case ItemGroup.NONE: item.type = ItemType.None; break;

                        case ItemGroup.GROUND: item.type = ItemType.Ground; break;

                        case ItemGroup.SPLASH: item.type = ItemType.Splash; break;

                        case ItemGroup.FLUID: item.type = ItemType.Fluid; break;

                        case ItemGroup.CONTAINER: item.type = ItemType.Container; break;

                        case ItemGroup.DEPRECATED: item.type = ItemType.Deprecated; break;

                        default: break;
                        }

                        ItemFlag flags = (ItemFlag)nodeReader.ReadUInt32();

                        item.isUnpassable    = ((flags & ItemFlag.BLOCK_SOLID) == ItemFlag.BLOCK_SOLID);
                        item.blockMissiles   = ((flags & ItemFlag.BLOCK_MISSILE) == ItemFlag.BLOCK_MISSILE);
                        item.blockPathfinder = ((flags & ItemFlag.BLOCK_PATHFINDER) == ItemFlag.BLOCK_PATHFINDER);
                        item.isPickupable    = ((flags & ItemFlag.PICKUPABLE) == ItemFlag.PICKUPABLE);
                        item.isMoveable      = ((flags & ItemFlag.MOVEABLE) == ItemFlag.MOVEABLE);
                        item.isStackable     = ((flags & ItemFlag.STACKABLE) == ItemFlag.STACKABLE);
                        item.alwaysOnTop     = ((flags & ItemFlag.ALWAYS_ON_TOP) == ItemFlag.ALWAYS_ON_TOP);
                        item.isVertical      = ((flags & ItemFlag.VERTICAL_WALL) == ItemFlag.VERTICAL_WALL);
                        item.isHorizontal    = ((flags & ItemFlag.HORIZONTAL_WALL) == ItemFlag.HORIZONTAL_WALL);
                        item.isHangable      = ((flags & ItemFlag.HANGABLE) == ItemFlag.HANGABLE);
                        item.isRotatable     = ((flags & ItemFlag.ROTABLE) == ItemFlag.ROTABLE);
                        item.isReadable      = ((flags & ItemFlag.READABLE) == ItemFlag.READABLE);
                        item.multiUse        = ((flags & ItemFlag.USEABLE) == ItemFlag.USEABLE);
                        item.hasElevation    = ((flags & ItemFlag.HAS_ELEVATION) == ItemFlag.HAS_ELEVATION);
                        item.ignoreLook      = ((flags & ItemFlag.IGNORE_LOOK) == ItemFlag.IGNORE_LOOK);
                        item.allowDistRead   = ((flags & ItemFlag.ALLOW_DISTANCE_READ) == ItemFlag.ALLOW_DISTANCE_READ);
                        item.isAnimation     = ((flags & ItemFlag.ANIMATION) == ItemFlag.ANIMATION);
                        item.fullGround      = ((flags & ItemFlag.FULL_GROUND) == ItemFlag.FULL_GROUND);

                        while (nodeReader.PeekChar() != -1)
                        {
                            ItemAttribute attribute = (ItemAttribute)nodeReader.ReadByte();
                            UInt16        datalen   = nodeReader.ReadUInt16();

                            switch (attribute)
                            {
                            case ItemAttribute.SERVER_ID:
                                item.id = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.CLIENT_ID:
                                item.spriteId = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.GROUND_SPEED:
                                item.groundSpeed = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.NAME:
                                item.name = new string(nodeReader.ReadChars(datalen));
                                break;

                            case ItemAttribute.SPRITE_HASH:
                                item.SpriteHash = nodeReader.ReadBytes(datalen);
                                break;

                            case ItemAttribute.MINIMAP_COLOR:
                                item.minimapColor = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.MAX_READ_WRITE_CHARS:
                                item.maxReadWriteChars = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.MAX_READ_CHARS:
                                item.maxReadChars = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.LIGHT:
                                item.lightLevel = nodeReader.ReadUInt16();
                                item.lightColor = nodeReader.ReadUInt16();
                                break;

                            case ItemAttribute.TOP_ORDER:
                                item.alwaysOnTopOrder = nodeReader.ReadByte();
                                break;

                            case ItemAttribute.TRADE_AS:
                                item.tradeAs = nodeReader.ReadUInt16();
                                break;

                            default:
                                nodeReader.BaseStream.Seek(datalen, SeekOrigin.Current);
                                break;
                            }
                        }

                        if (item.SpriteHash == null && item.type != ItemType.Deprecated)
                        {
                            item.SpriteHash = new byte[16];
                        }

                        items.Add(item);
                        nodeReader = reader.getNextNode();
                    } while (nodeReader != null);
                }
            }
            finally
            {
                fileStream.Close();
            }

            return(true);
        }
Esempio n. 9
0
 public bool CheckFlag(ItemFlag flag)
 {
     return(CheckFlag(flag.ToString()));
 }
Esempio n. 10
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="id"></param>
        /// <param name="reader"></param>
        public ItemType(ushort id, BinaryReader reader)
        {
            ID = id;

            Inventory = (ItemTypeInventory)reader.ReadUInt16();
            Flags = (ItemFlag)reader.ReadUInt16();
            ACBonus = reader.ReadSByte();
            Classes = (ItemTypeClass)reader.ReadByte();
            HandRestriction = (ItemHandRestiction)reader.ReadByte();
            DamageVSSmall = new Dice(reader);
            DamageVsBig = new Dice(reader);
            Unk0 = reader.ReadByte();
            Action = reader.ReadByte();
            Unk1 = reader.ReadByte();
        }
Esempio n. 11
0
        public string GetCommand(int entry, ItemClass iClass, int subClass, int unk0, string[] name,
                                 int dispId, ItemQuality quality, ItemFlag flags, ItemFlagExtra flags2, int buyPrice,
                                 int sellPrice, InventoryType invType, ClassMask allowClass, RaceMask allowRace, int itemLvl,
                                 int reqLvl, int reqSkill, int reqSkLvl, int reqSpell, int reqHonor, int reqCity,
                                 int reqRepFaction, int reqRepValue, int maxCount, int stacks, int contSlots, int statsCount,
                                 ItemModType[] statType, int[] statValue, int ssdId, int ssdVal, float[] dmgMin,
                                 float[] dmgMax, DamageType[] dmgType, int[] resistance, int delay, AmmoType ammoType,
                                 float rangedMod, int[] spellId, ItemSpellTriggerType[] spellTrigger, int[] spellCharges,
                                 int[] spellCooldown, int[] spellCategory, int[] spellCatCooldown, ItemBonding binding,
                                 string description, int pageText, Language langId, PageMaterial pageMat, int startQuest,
                                 int lockId, Material material, SheathType sheath, int randomProp, int randomSuffix,
                                 int block, int itemSet, int maxDura, int area, int map, BagFamilyMask bagFamily,
                                 TotemCategory totemCat, ItemSocketColor[] color, int[] content, int socketBonus,
                                 int gemProps, int reqDisEnchSkill, float armorDmgMod, int duration, int limitCategory,
                                 Holiday holidayId)
        {
            var builder = new CommandBuilder("item_template");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("class", (int)iClass);
            builder.AddColumnValue("subclass", subClass);
            builder.AddColumnValue("unk0", unk0);
            builder.AddColumnValue("name", name[0]);
            builder.AddColumnValue("displayid", dispId);
            builder.AddColumnValue("Quality", (int)quality);
            builder.AddColumnValue("Flags", (int)flags);
            builder.AddColumnValue("BuyCount", 1);
            builder.AddColumnValue("BuyPrice", buyPrice);
            builder.AddColumnValue("SellPrice", sellPrice);
            builder.AddColumnValue("InventoryType", (int)invType);
            builder.AddColumnValue("AllowableClass", (int)allowClass);
            builder.AddColumnValue("AllowableRace", (int)allowRace);
            builder.AddColumnValue("ItemLevel", itemLvl);
            builder.AddColumnValue("RequiredLevel", reqLvl);
            builder.AddColumnValue("RequiredSkill", reqSkill);
            builder.AddColumnValue("RequiredSkillRank", reqSkLvl);
            builder.AddColumnValue("requiredspell", reqSpell);
            builder.AddColumnValue("requiredhonorrank", reqHonor);
            builder.AddColumnValue("RequiredCityRank", reqCity);
            builder.AddColumnValue("RequiredReputationFaction", reqRepFaction);
            builder.AddColumnValue("RequiredReputationRank", reqRepValue);
            builder.AddColumnValue("maxcount", maxCount);

            var stackVal = stacks;

            if (SQLOutput.Format == SqlFormat.Mangos && stacks > 1000)
            {
                stackVal = -1;
            }

            builder.AddColumnValue("stackable", stackVal);
            builder.AddColumnValue("ContainerSlots", contSlots);
            builder.AddColumnValue("StatsCount", statsCount);

            for (var i = 0; i < 10; i++)
            {
                int type;
                int value;

                if (i > statsCount - 1)
                {
                    type  = 0;
                    value = 0;
                }
                else
                {
                    type  = (int)statType[i];
                    value = statValue[i];
                }

                builder.AddColumnValue("stat_type" + (i + 1), type);
                builder.AddColumnValue("stat_value" + (i + 1), value);
            }

            builder.AddColumnValue("ScalingStatDistribution", ssdId);
            builder.AddColumnValue("ScalingStatValue", ssdVal);

            for (var i = 0; i < 2; i++)
            {
                builder.AddColumnValue("dmg_min" + (i + 1), dmgMin[i]);
                builder.AddColumnValue("dmg_max" + (i + 1), dmgMax[i]);
                builder.AddColumnValue("dmg_type" + (i + 1), (int)dmgType[i]);
            }

            builder.AddColumnValue("armor", resistance[0]);
            builder.AddColumnValue("holy_res", resistance[1]);
            builder.AddColumnValue("fire_res", resistance[2]);
            builder.AddColumnValue("nature_res", resistance[3]);
            builder.AddColumnValue("frost_res", resistance[4]);
            builder.AddColumnValue("shadow_res", resistance[5]);
            builder.AddColumnValue("arcane_res", resistance[6]);
            builder.AddColumnValue("delay", delay);
            builder.AddColumnValue("ammo_type", (int)ammoType);
            builder.AddColumnValue("RangedModRange", rangedMod);

            for (var i = 0; i < 5; i++)
            {
                builder.AddColumnValue("spellid_" + (i + 1), spellId[i]);
                builder.AddColumnValue("spelltrigger_" + (i + 1), (int)spellTrigger[i]);
                builder.AddColumnValue("spellcharges_" + (i + 1), spellCharges[i]);
                builder.AddColumnValue("spellppmRate_" + (i + 1), 0);
                builder.AddColumnValue("spellcooldown_" + (i + 1), spellCooldown[i]);
                builder.AddColumnValue("spellcategory_" + (i + 1), spellCategory[i]);
                builder.AddColumnValue("spellcategorycooldown_" + (i + 1), spellCatCooldown[i]);
            }

            builder.AddColumnValue("bonding", (int)binding);
            builder.AddColumnValue("description", description);
            builder.AddColumnValue("PageText", pageText);
            builder.AddColumnValue("LanguageID", (int)langId);
            builder.AddColumnValue("PageMaterial", (int)pageMat);
            builder.AddColumnValue("startquest", startQuest);
            builder.AddColumnValue("lockid", lockId);
            builder.AddColumnValue("Material", (int)material);
            builder.AddColumnValue("sheath", (int)sheath);
            builder.AddColumnValue("RandomProperty", randomProp);
            builder.AddColumnValue("RandomSuffix", randomSuffix);
            builder.AddColumnValue("block", block);
            builder.AddColumnValue("itemset", itemSet);
            builder.AddColumnValue("MaxDurability", maxDura);
            builder.AddColumnValue("area", area);
            builder.AddColumnValue("map", map);
            builder.AddColumnValue("BagFamily", (int)bagFamily);
            builder.AddColumnValue("TotemCategory", (int)totemCat);

            for (var i = 0; i < 3; i++)
            {
                builder.AddColumnValue("socketColor_" + (i + 1), (int)color[i]);
                builder.AddColumnValue("socketContent_" + (i + 1), content[i]);
            }

            builder.AddColumnValue("socketBonus", socketBonus);
            builder.AddColumnValue("GemProperties", gemProps);
            builder.AddColumnValue("RequiredDisenchantSkill", reqDisEnchSkill);
            builder.AddColumnValue("ArmorDamageModifier", armorDmgMod);
            builder.AddColumnValue("Duration", duration);
            builder.AddColumnValue("ItemLimitCategory", limitCategory);
            builder.AddColumnValue("HolidayID", (int)holidayId);
            builder.AddColumnValue("ScriptName", string.Empty);
            builder.AddColumnValue("DisenchantID", 0);
            builder.AddColumnValue("FoodType", 0);
            builder.AddColumnValue("minMoneyLoot", 0);
            builder.AddColumnValue("maxMoneyLoot", 0);
            builder.AddColumnValue("NonConsumable", 0);

            return(builder.BuildInsert(true));
        }
Esempio n. 12
0
        public string GetCommand(int entry, ItemClass iClass, int subClass, int unk0, string[] name,
            int dispId, ItemQuality quality, ItemFlag flags, ItemFlagExtra flags2, int buyPrice,
            int sellPrice, InventoryType invType, ClassMask allowClass, RaceMask allowRace, int itemLvl,
            int reqLvl, int reqSkill, int reqSkLvl, int reqSpell, int reqHonor, int reqCity,
            int reqRepFaction, int reqRepValue, int maxCount, int stacks, int contSlots, int statsCount,
            ItemModType[] statType, int[] statValue, int ssdId, int ssdVal, float[] dmgMin,
            float[] dmgMax, DamageType[] dmgType, int[] resistance, int delay, AmmoType ammoType,
            float rangedMod, int[] spellId, ItemSpellTriggerType[] spellTrigger, int[] spellCharges,
            int[] spellCooldown, int[] spellCategory, int[] spellCatCooldown, ItemBonding binding,
            string description, int pageText, Language langId, PageMaterial pageMat, int startQuest,
            int lockId, Material material, SheathType sheath, int randomProp, int randomSuffix,
            int block, int itemSet, int maxDura, int area, int map, BagFamilyMask bagFamily,
            TotemCategory totemCat, ItemSocketColor[] color, int[] content, int socketBonus,
            int gemProps, int reqDisEnchSkill, float armorDmgMod, int duration, int limitCategory,
            Holiday holidayId)
        {
            var builder = new CommandBuilder("item_template");

            builder.AddColumnValue("entry", entry);
            builder.AddColumnValue("class", (int)iClass);
            builder.AddColumnValue("subclass", subClass);
            builder.AddColumnValue("unk0", unk0);
            builder.AddColumnValue("name", name[0]);
            builder.AddColumnValue("displayid", dispId);
            builder.AddColumnValue("Quality", (int)quality);
            builder.AddColumnValue("Flags", (int)flags);
            builder.AddColumnValue("BuyCount", 1);
            builder.AddColumnValue("BuyPrice", buyPrice);
            builder.AddColumnValue("SellPrice", sellPrice);
            builder.AddColumnValue("InventoryType", (int)invType);
            builder.AddColumnValue("AllowableClass", (int)allowClass);
            builder.AddColumnValue("AllowableRace", (int)allowRace);
            builder.AddColumnValue("ItemLevel", itemLvl);
            builder.AddColumnValue("RequiredLevel", reqLvl);
            builder.AddColumnValue("RequiredSkill", reqSkill);
            builder.AddColumnValue("RequiredSkillRank", reqSkLvl);
            builder.AddColumnValue("requiredspell", reqSpell);
            builder.AddColumnValue("requiredhonorrank", reqHonor);
            builder.AddColumnValue("RequiredCityRank", reqCity);
            builder.AddColumnValue("RequiredReputationFaction", reqRepFaction);
            builder.AddColumnValue("RequiredReputationRank", reqRepValue);
            builder.AddColumnValue("maxcount", maxCount);

            var stackVal = stacks;
            if (SQLOutput.Format == SqlFormat.Mangos && stacks > 1000)
                stackVal = -1;

            builder.AddColumnValue("stackable", stackVal);
            builder.AddColumnValue("ContainerSlots", contSlots);
            builder.AddColumnValue("StatsCount", statsCount);

            for (var i = 0; i < 10; i++)
            {
                int type;
                int value;

                if (i > statsCount - 1)
                {
                    type = 0;
                    value = 0;
                }
                else
                {
                    type = (int)statType[i];
                    value = statValue[i];
                }

                builder.AddColumnValue("stat_type" + (i + 1), type);
                builder.AddColumnValue("stat_value" + (i + 1), value);
            }

            builder.AddColumnValue("ScalingStatDistribution", ssdId);
            builder.AddColumnValue("ScalingStatValue", ssdVal);

            for (var i = 0; i < 2; i++)
            {
                builder.AddColumnValue("dmg_min" + (i + 1), dmgMin[i]);
                builder.AddColumnValue("dmg_max" + (i + 1), dmgMax[i]);
                builder.AddColumnValue("dmg_type" + (i + 1), (int)dmgType[i]);
            }

            builder.AddColumnValue("armor", resistance[0]);
            builder.AddColumnValue("holy_res", resistance[1]);
            builder.AddColumnValue("fire_res", resistance[2]);
            builder.AddColumnValue("nature_res", resistance[3]);
            builder.AddColumnValue("frost_res", resistance[4]);
            builder.AddColumnValue("shadow_res", resistance[5]);
            builder.AddColumnValue("arcane_res", resistance[6]);
            builder.AddColumnValue("delay", delay);
            builder.AddColumnValue("ammo_type", (int)ammoType);
            builder.AddColumnValue("RangedModRange", rangedMod);

            for (var i = 0; i < 5; i++)
            {
                builder.AddColumnValue("spellid_" + (i + 1), spellId[i]);
                builder.AddColumnValue("spelltrigger_" + (i + 1), (int)spellTrigger[i]);
                builder.AddColumnValue("spellcharges_" + (i + 1), spellCharges[i]);
                builder.AddColumnValue("spellppmRate_" + (i + 1), 0);
                builder.AddColumnValue("spellcooldown_" + (i + 1), spellCooldown[i]);
                builder.AddColumnValue("spellcategory_" + (i + 1), spellCategory[i]);
                builder.AddColumnValue("spellcategorycooldown_" + (i + 1), spellCatCooldown[i]);
            }

            builder.AddColumnValue("bonding", (int)binding);
            builder.AddColumnValue("description", description);
            builder.AddColumnValue("PageText", pageText);
            builder.AddColumnValue("LanguageID", (int)langId);
            builder.AddColumnValue("PageMaterial", (int)pageMat);
            builder.AddColumnValue("startquest", startQuest);
            builder.AddColumnValue("lockid", lockId);
            builder.AddColumnValue("Material", (int)material);
            builder.AddColumnValue("sheath", (int)sheath);
            builder.AddColumnValue("RandomProperty", randomProp);
            builder.AddColumnValue("RandomSuffix", randomSuffix);
            builder.AddColumnValue("block", block);
            builder.AddColumnValue("itemset", itemSet);
            builder.AddColumnValue("MaxDurability", maxDura);
            builder.AddColumnValue("area", area);
            builder.AddColumnValue("map", map);
            builder.AddColumnValue("BagFamily", (int)bagFamily);
            builder.AddColumnValue("TotemCategory", (int)totemCat);

            for (var i = 0; i < 3; i++)
            {
                builder.AddColumnValue("socketColor_" + (i + 1), (int)color[i]);
                builder.AddColumnValue("socketContent_" + (i + 1), content[i]);
            }

            builder.AddColumnValue("socketBonus", socketBonus);
            builder.AddColumnValue("GemProperties", gemProps);
            builder.AddColumnValue("RequiredDisenchantSkill", reqDisEnchSkill);
            builder.AddColumnValue("ArmorDamageModifier", armorDmgMod);
            builder.AddColumnValue("Duration", duration);
            builder.AddColumnValue("ItemLimitCategory", limitCategory);
            builder.AddColumnValue("HolidayID", (int)holidayId);
            builder.AddColumnValue("ScriptName", string.Empty);
            builder.AddColumnValue("DisenchantID", 0);
            builder.AddColumnValue("FoodType", 0);
            builder.AddColumnValue("minMoneyLoot", 0);
            builder.AddColumnValue("maxMoneyLoot", 0);
            builder.AddColumnValue("NonConsumable", 0);

            return builder.BuildInsert(true);
        }
        /// <summary>
        /// Checks if the item type has the given item flag set.
        /// </summary>
        /// <param name="itemTypeEntity">The item type entity.</param>
        /// <param name="itemFlag">The item flag to check for.</param>
        /// <returns>True if the item type has the item flag set, and false otherwise.</returns>
        public static bool HasItemFlag(this IItemTypeEntity itemTypeEntity, ItemFlag itemFlag)
        {
            itemTypeEntity.ThrowIfNull(nameof(itemTypeEntity));

            return((itemTypeEntity.Flags & (ulong)itemFlag) == (ulong)itemFlag);
        }
Esempio n. 14
0
 private bool HasFlag(ItemFlag flag) => ItemData.ItemFlags.HasFlag(flag);
Esempio n. 15
0
 public static void ClearItemFlag(this GameObject obj, ItemFlag flag)
 {
     obj.SetItemFlag(flag, false);
 }
Esempio n. 16
0
 public static void SetItemFlag(this GameObject obj, ItemFlag flag)
 {
     obj.SetItemFlag(flag, true);
 }