示例#1
0
 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);
     }
 }
示例#2
0
        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);
        }