public static void RefreshDisplay(ItemDetailsDisplay __instance, IItemDisplay _itemDisplay) { try { if (_itemDisplay != null && _itemDisplay.RefItem != null && _itemDisplay.RefItem.GetType().Name == "WaterContainer") { //WorkInProgress.Instance.MyLogger.LogDebug($"InitDisplayedStats"); //Perishable m_perishScript = (Perishable)AccessTools.Field(typeof(Item), "m_perishScript").GetValue(_itemDisplay.RefItem); //WorkInProgress.Instance.MyLogger.LogDebug($" > IsPerishable={_itemDisplay.RefItem.IsPerishable}"); //WorkInProgress.Instance.MyLogger.LogDebug($" > m_perishScript={m_perishScript != null}"); //if (m_perishScript != null) // WorkInProgress.Instance.MyLogger.LogDebug($" > DepletionRate={m_perishScript.DepletionRate}"); //WorkInProgress.Instance.MyLogger.LogDebug($" > CurrentDurability={_itemDisplay.RefItem.CurrentDurability}"); ItemDetailsDisplay.DisplayedInfos[] m_displayedInfos = (ItemDetailsDisplay.DisplayedInfos[])AccessTools.Field(typeof(Item), "m_displayedInfos").GetValue(_itemDisplay.RefItem); m_displayedInfos = new ItemDetailsDisplay.DisplayedInfos[3] { ItemDetailsDisplay.DisplayedInfos.QuickSlot, ItemDetailsDisplay.DisplayedInfos.Capacity, ItemDetailsDisplay.DisplayedInfos.Content }; AccessTools.Field(typeof(Item), "m_displayedInfos").SetValue(_itemDisplay.RefItem, m_displayedInfos); } } catch (Exception ex) { WorkInProgress.Instance.MyLogger.LogError("HideWaterDurability: " + ex.Message); } }
static bool ItemDetailsDisplay_RefreshDetail_Post(ItemDetailsDisplay __instance, ref bool __result, int _rowIndex, ItemDetailsDisplay.DisplayedInfos _infoType) { if (_infoType == ItemDetailsDisplay.DisplayedInfos.AttackSpeed && _displayRelativeAttackSpeed) { float attackSpeedOffset = __instance.cachedWeapon.BaseAttackSpeed - 1f; Weapon.WeaponType weaponType = __instance.cachedWeapon.Type; if (attackSpeedOffset == 0 || weaponType == Weapon.WeaponType.Shield || weaponType == Weapon.WeaponType.Bow) { return(false); } string text = (attackSpeedOffset > 0 ? "+" : "") + attackSpeedOffset.ToString("P0"); Color color = attackSpeedOffset > 0 ? Global.LIGHT_GREEN : Global.LIGHT_RED; __instance.GetRow(_rowIndex).SetInfo(LocalizationManager.Instance.GetLoc("ItemStat_AttackSpeed"), Global.SetTextColor(text, color)); __result = true; return(false); } else if ((_infoType == ItemDetailsDisplay.DisplayedInfos.Impact || _infoType == ItemDetailsDisplay.DisplayedInfos.ImpactResistance) && _normalizeImpactDisplay) { float value = _infoType == ItemDetailsDisplay.DisplayedInfos.Impact ? __instance.cachedWeapon.Impact : __instance.cachedEquipment.ImpactResistance; if (value <= 0) { return(false); } TryCacheImpactIcon(__instance.CharacterUI); __instance.GetRow(_rowIndex).SetInfo("", value.Round(), _impactIcon); __result = true; return(false); } else if (_infoType == ItemDetailsDisplay.DisplayedInfos.Durability && _hideNumericalDurability) { return(false); } return(true); }