Beispiel #1
0
    public int QualityTypeDistance(ItemQualityType currentType, ItemQualityType targetType)
    {
        int currentIndex = System.Array.IndexOf(qualityTypeMap, currentType);
        int targetIndex  = System.Array.IndexOf(qualityTypeMap, targetType);

        return(targetIndex - currentIndex);
    }
Beispiel #2
0
 public StackItem(StackItem oldItem)
 {
     if (oldItem == null)
     {
         return;
     }
     this.item       = oldItem.item;
     this.stackCount = oldItem.stackCount;
     this.quality    = oldItem.quality;
 }
Beispiel #3
0
    public ItemQualityType GetNextQualityTier(ItemQualityType currentType)
    {
        if (currentType == ItemQualityType.Artifact)
        {
            return(ItemQualityType.Artifact);
        }

        int currentIndex = System.Array.IndexOf(qualityTypeMap, currentType);

        return(qualityTypeMap[currentIndex + 1]);
    }
Beispiel #4
0
    public void GenerateLootItem()
    {
        lootItem          = ItemDatabaseManager.Instance.GetItem((ItemType)Random.Range(0, ItemType.GetNames(typeof(ItemType)).Length), 0);
        lootItem.quality  = (ItemQualityType)Random.Range(0, ItemQualityType.GetNames(typeof(ItemQualityType)).Length);
        lootItem.uniqueID = ItemDatabaseManager.Instance.GenerateUniqueID();
        int statCount = Random.Range(2, 7);

        for (int i = 0; i < statCount; i++)
        {
            lootItem.statModifiers.Add(CreateRandomStatModifier());
        }
    }
Beispiel #5
0
    public float GetStandardUpdateChance(ItemQualityType currentType, ItemQualityType targetType, float upgradeFactor = 1f)
    {
        int typeDistance = QualityTypeDistance(currentType, targetType);

        if (typeDistance > 0)
        {
            float standardChance = Mathf.Pow(0.1f, typeDistance);
            float factorChance   = Mathf.Pow(upgradeFactor, typeDistance);
            return(standardChance * factorChance);
        }

        return(0);
    }
        public static ItemQualityType GetItemQualityTypeById(long id)
        {
            ItemQualityType _iq     = null;
            var             con     = MySqlUtils.GetDBConnection();
            string          query   = $"select id,name,created_at,updated_at,buy_multiplier,sell_multiplier from lifyodb.ItemQualityType where id ={id}";
            MySqlDataReader _reader = runQuery(query, con);

            while (_reader.Read())
            {
                _iq = new ItemQualityType
                {
                    Id             = Convert.ToInt32(_reader["id"]),
                    Name           = _reader["name"].ToString(),
                    Created        = Convert.ToDateTime(_reader["created_at"]),
                    Updated        = Convert.ToDateTime(_reader["updated_at"]),
                    BuyMultiplier  = Convert.ToDecimal(_reader["buy_multiplier"]),
                    SellMultiplier = Convert.ToDecimal(_reader["sell_multiplier"])
                };
            }
            return(_iq);
        }
Beispiel #7
0
    /// <summary>
    /// 根据物品品质获取tips顶部背景(公共图集)
    /// </summary>
    /// <param name="num"> (装备为附加属性条目数,其他物品为附加品质)</param>
    /// <returns></returns>
    public static TextureID GetItemTipsTopIcon(ItemQualityType qType)
    {
        TextureID textureId = TextureID.Biankuang_tips_hui;

        switch (qType)
        {
        case ItemDefine.ItemQualityType.White:
            textureId = TextureID.Biankuang_tips_hui;
            break;

        case ItemDefine.ItemQualityType.Yellow:
            textureId = TextureID.Biankuang_tips_danhuang;
            break;

        case ItemDefine.ItemQualityType.Green:
            textureId = TextureID.Biankuang_tips_lv;
            break;

        case ItemDefine.ItemQualityType.Blue:
            textureId = TextureID.Biankuang_tips_lan;
            break;

        case ItemDefine.ItemQualityType.Purple:
            textureId = TextureID.Biankuang_tips_zi;
            break;

        case ItemDefine.ItemQualityType.Orange:
            textureId = TextureID.Biankuang_tips_huang;
            break;

        default:
            textureId = TextureID.Biankuang_tips_hui;
            break;
        }
        return(textureId);
    }
 public ItemQuality(string _itemQualityPercent, int _itemQualityPercentInt, ItemQualityType _itemQualityType)
 {
     ItemQualityPercent    = _itemQualityPercent;
     ItemQualityPercentInt = _itemQualityPercentInt;
     ItemQualityType       = _itemQualityType;
 }
Beispiel #9
0
    public bool IsSameQualityOrAbove(ItemQualityType currentType, ItemQualityType targetType)
    {
        int typeDistance = QualityTypeDistance(currentType, targetType);

        return(typeDistance >= 0);
    }
Beispiel #10
0
        public static IItem GetItem(int level)
        {
            // Determine item quality type.
            //Poor = 0,
            //Fair = 1,
            //Moderate = 2,
            //Good = 3,
            //Excellent = 4,
            //Master = 5,
            //Legendary = 6,
            ItemQualityType qualityType = ItemQualityType.Poor;

            if (level >= 20 && level < 33)
            {
                qualityType = ItemQualityType.Fair;
            }
            if (level >= 34 && level < 47)
            {
                qualityType = ItemQualityType.Moderate;
            }
            if (level >= 48 && level < 61)
            {
                qualityType = ItemQualityType.Good;
            }
            if (level >= 62 && level < 75)
            {
                qualityType = ItemQualityType.Excellent;
            }
            if (level >= 76 && level < 89)
            {
                qualityType = ItemQualityType.Master;
            }
            if (level >= 90)
            {
                qualityType = ItemQualityType.Legendary;
            }

            // Get a random item type.
            ItemType itemType = GetItemType();

            // Get the equip location.
            EquipLocation equipLocation = GetEquipLocation(itemType);

            var prefixes = _prefixes[qualityType];
            var names    = _names[itemType, equipLocation];
            var suffixes = _suffixes[qualityType];

            // Generate an item based on quality type.
            switch (qualityType)
            {
            case ItemQualityType.Fair:
                break;

            case ItemQualityType.Moderate:
                break;

            case ItemQualityType.Good:
                break;

            case ItemQualityType.Excellent:
                break;

            case ItemQualityType.Master:
                break;

            case ItemQualityType.Legendary:
                break;

            default:
                // Poor
                // return CreateItem(itemType, equipLocation, qualityType, level);
                break;
            }
            return(null);
        }
Beispiel #11
0
 public StackItem(Item item, int stackCount = 1, ItemQualityType quality = ItemQualityType.Common)
 {
     this.item       = item;
     this.stackCount = stackCount;
     this.quality    = quality;
 }