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; }
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; }
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; }