Implement ItemLevelSelector.db2
Implemented glowing new items in inventory
This commit is contained in:
@@ -140,6 +140,7 @@ namespace Game.DataStorage
|
||||
ItemEffectStorage = DB6Reader.Read<ItemEffectRecord>("ItemEffect.db2", DB6Metas.ItemEffectMeta, HotfixStatements.SEL_ITEM_EFFECT);
|
||||
ItemStorage = DB6Reader.Read<ItemRecord>("Item.db2", DB6Metas.ItemMeta, HotfixStatements.SEL_ITEM);
|
||||
ItemExtendedCostStorage = DB6Reader.Read<ItemExtendedCostRecord>("ItemExtendedCost.db2", DB6Metas.ItemExtendedCostMeta, HotfixStatements.SEL_ITEM_EXTENDED_COST);
|
||||
ItemLevelSelectorStorage = DB6Reader.Read<ItemLevelSelectorRecord>("ItemLevelSelector.db2", DB6Metas.ItemLevelSelectorMeta, HotfixStatements.SEL_ITEM_LEVEL_SELECTOR);
|
||||
ItemLimitCategoryStorage = DB6Reader.Read<ItemLimitCategoryRecord>("ItemLimitCategory.db2", DB6Metas.ItemLimitCategoryMeta, HotfixStatements.SEL_ITEM_LIMIT_CATEGORY, HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_LOCALE);
|
||||
ItemModifiedAppearanceStorage = DB6Reader.Read<ItemModifiedAppearanceRecord>("ItemModifiedAppearance.db2", DB6Metas.ItemModifiedAppearanceMeta, HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE);
|
||||
ItemPriceBaseStorage = DB6Reader.Read<ItemPriceBaseRecord>("ItemPriceBase.db2", DB6Metas.ItemPriceBaseMeta, HotfixStatements.SEL_ITEM_PRICE_BASE);
|
||||
@@ -464,6 +465,7 @@ namespace Game.DataStorage
|
||||
public static DB6Storage<ItemEffectRecord> ItemEffectStorage;
|
||||
public static DB6Storage<ItemRecord> ItemStorage;
|
||||
public static DB6Storage<ItemExtendedCostRecord> ItemExtendedCostStorage;
|
||||
public static DB6Storage<ItemLevelSelectorRecord> ItemLevelSelectorStorage;
|
||||
public static DB6Storage<ItemLimitCategoryRecord> ItemLimitCategoryStorage;
|
||||
public static DB6Storage<ItemModifiedAppearanceRecord> ItemModifiedAppearanceStorage;
|
||||
public static DB6Storage<ItemPriceBaseRecord> ItemPriceBaseStorage;
|
||||
|
||||
@@ -777,6 +777,11 @@ namespace Game.DataStorage
|
||||
public List<uint> GetItemBonusTree(uint itemId, uint itemBonusTreeMod)
|
||||
{
|
||||
List<uint> bonusListIDs = new List<uint>();
|
||||
|
||||
ItemSparseRecord proto = CliDB.ItemSparseStorage.LookupByKey(itemId);
|
||||
if (proto == null)
|
||||
return bonusListIDs;
|
||||
|
||||
var itemIdRange = _itemToBonusTree.LookupByKey(itemId);
|
||||
if (itemIdRange.Empty())
|
||||
return bonusListIDs;
|
||||
@@ -788,8 +793,27 @@ namespace Game.DataStorage
|
||||
continue;
|
||||
|
||||
foreach (ItemBonusTreeNodeRecord bonusTreeNode in treeList)
|
||||
if (bonusTreeNode.BonusTreeModID == itemBonusTreeMod)
|
||||
{
|
||||
if (bonusTreeNode.BonusTreeModID != itemBonusTreeMod)
|
||||
continue;
|
||||
|
||||
if (bonusTreeNode.BonusListID != 0)
|
||||
{
|
||||
bonusListIDs.Add(bonusTreeNode.BonusListID);
|
||||
}
|
||||
else if (bonusTreeNode.ItemLevelSelectorID != 0)
|
||||
{
|
||||
ItemLevelSelectorRecord selector = CliDB.ItemLevelSelectorStorage.LookupByKey(bonusTreeNode.ItemLevelSelectorID);
|
||||
if (selector == null)
|
||||
continue;
|
||||
|
||||
short delta = (short)(selector.ItemLevel - proto.ItemLevel);
|
||||
|
||||
uint bonus = GetItemBonusListForItemLevelDelta(delta);
|
||||
if (bonus != 0)
|
||||
bonusListIDs.Add(bonus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bonusListIDs;
|
||||
|
||||
@@ -199,6 +199,12 @@ namespace Game.DataStorage
|
||||
public byte RequiredAchievement;
|
||||
}
|
||||
|
||||
public sealed class ItemLevelSelectorRecord
|
||||
{
|
||||
public uint ID;
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemLimitCategoryRecord
|
||||
{
|
||||
public uint Id;
|
||||
|
||||
Reference in New Issue
Block a user