コード例 #1
0
        private void CheckItemDurability([NotNull] IItem item)
        {
            double itemDurabilityFraction = ItemDurabilitySystem.SharedGetDurabilityFraction(item);

            if (IsUnequipEnabled &&
                itemDurabilityFraction <= UnequipThreshold)
            {
                if (TryToMoveItem(
                        item: item,
                        toContainer: CurrentCharacter.SharedGetPlayerContainerInventory()))
                {
                    if (item != null)
                    {
                        itemAlerts.Remove(item);
                    }
                    return;
                }
            }

            if (!itemAlerts.ContainsKey(item))
            {
                itemAlerts.Add(item, new AlertDetails());
            }

            if (IsAlertNotificationEnabled &&
                itemDurabilityFraction <= AlertThreshold &&
                (itemAlerts[item].Durability - itemDurabilityFraction >= AlertStep ||
                 (AlertTimeout > 0 &&
                  itemAlerts[item].Time + AlertTimeout < Api.Client.Core.ClientRealTime)))
            {
                itemAlerts[item].Durability = itemDurabilityFraction;
                itemAlerts[item].Time       = Api.Client.Core.ClientRealTime;

                NotificationSystem.ClientShowNotification(
                    title: "Item durability low!",
                    color: NotificationColor.Bad,
                    icon: item.ProtoItem.Icon);
            }
        }