public void Modify(DropModificationContext context)
        {
            EpicLootItemConfiguration config = GetConfig(context.Template);

            if (config is null)
            {
#if DEBUG
                Log.LogDebug("Found no config for drop template.");
#endif
                return;
            }

            ItemDrop itemDrop = context.ItemDrop;

            if (itemDrop is null)
            {
                return;
            }

#if DEBUG
            Log.LogDebug("Adding magic modifiers.");
#endif

            var magicItemData = ItemRoller.Roll(
                itemDrop.m_itemData,
                context.Drop.transform.position,
                config);

            if (magicItemData is not null)
            {
                itemDrop.m_itemData = magicItemData;
            }
        }
        private static void ModifyDrop(GameObject drop)
        {
            try
            {
                DropTemplate template = DropTemplateCache.GetTemplate(_currentWrapped);

                if (template is null)
                {
                    return;
                }

                DropModificationContext context = new DropModificationContext(drop, template);

                foreach (var modifier in template.Modifiers)
                {
                    try
                    {
                        modifier.Modify(context);
                    }
                    catch (Exception e)
                    {
                        Log.LogError($"Error while attempting to apply modifier '{modifier.GetType().Name}' to drop '{drop}'. Skipping modifier.", e);
                    }
                }
            }
            catch (Exception e)
            {
                Log.LogError($"Error while preparing to modify drop '{drop}'. Skipping modifiers.", e);
            }

            _currentWrapped = null;
        }
Example #3
0
        public void Modify(DropModificationContext context)
        {
            int qualityLevel = context.Template?.Config?.SetQualityLevel ?? 0;

            if (qualityLevel <= 0)
            {
                return;
            }

            ItemDrop itemDrop = context.ItemDrop;

            if (itemDrop is null)
            {
                return;
            }

            Log.LogTrace($"Setting level of item '{context.Drop}' to {qualityLevel}");
            itemDrop.m_itemData.m_quality = qualityLevel;
        }
Example #4
0
    public void Modify(DropModificationContext context)
    {
        float durability = context.Template?.Config?.SetDurability ?? -1f;

        if (durability < 0)
        {
            return;
        }

        ItemDrop itemDrop = context.ItemDrop;

        if (itemDrop is null)
        {
            return;
        }

        Log.LogTrace($"Setting durability of item '{context.Drop}' to {durability}");
        itemDrop.m_itemData.m_durability = durability;
    }