@Sangemdoko -
One thing that would be a nice-to-have is comparing stats/info from item equipped with item being hovered over (be that in player inventory or merchant...)?
protected virtual void ApplyUpgradeStatChanges()
{
m_UpgradeableItemAmount.Item.name = GetFullItemWithSlotsName(m_UpgradeableItemAmount.Item, m_Slots);
int constBoost = 0;
float multBoost = 0;
for (int i = 0; i < m_Slots.Count; i++) {
constBoost += m_Slots[i].Item?.GetAttribute<Attribute<int>>("BoostConstant")?.GetValue() ?? 0;
multBoost += m_Slots[i].Item?.GetAttribute<Attribute<float>>("BoostMultiplier")?.GetValue() ?? 0;
}
var attackAttribute = m_UpgradeableItemAmount.Item.GetAttribute<Attribute<int>>("Attack");
if (attackAttribute != null) {
var baseAttack = m_UpgradeableItemAmount.Item.GetAttribute<Attribute<int>>("BaseAttack").GetValue();
attackAttribute.SetOverrideValue(baseAttack+constBoost+(int)(baseAttack*multBoost));
}
var defenceAttribute = m_UpgradeableItemAmount.Item.GetAttribute<Attribute<int>>("Defence");
if (defenceAttribute != null) {
var baseDefence = m_UpgradeableItemAmount.Item.GetAttribute<Attribute<int>>("BaseDefence").GetValue();
defenceAttribute.SetOverrideValue(baseDefence+constBoost+(int)(baseDefence*multBoost));
}
}
public static string GetFullItemWithSlotsName(Item item, ItemAmounts itemSlots)
{
if (itemSlots == null || itemSlots.Count == 0) { return item.ItemDefinition.name; }
string prefix = "";
string suffix = "";
var count = 0;
for (int i = 0; i < itemSlots.Count; i++) {
if (itemSlots[i].Item == null) { continue;}
count++;
var itemPrefix = itemSlots[i].Item.GetAttribute<Attribute<string>>(DemoInventoryDatabaseNames.UpgradeItem.prefix).GetValue();
if (!string.IsNullOrWhiteSpace(itemPrefix)) {
prefix += itemPrefix + " ";
}
var itemSuffix = itemSlots[i].Item.GetAttribute<Attribute<string>>(DemoInventoryDatabaseNames.UpgradeItem.suffix).GetValue();
if (!string.IsNullOrWhiteSpace(itemSuffix)) {
suffix += itemSuffix + " ";
}
}
if (count == 0) { return item.ItemDefinition.name;}
return $"{prefix} {item.ItemDefinition.name} {suffix} (+{count})";
}