public void Modify(DropContext context) { CharacterDropModConfigEpicLoot config; if (context.Extended.Config.TryGet(CharacterDropModConfigEpicLoot.ModName, out Config cfg) && cfg is CharacterDropModConfigEpicLoot modConfig) { config = modConfig; } else { return; } #if DEBUG Log.LogDebug("Adding magic modifiers."); #endif if (InitializeMagicItem is null) { #if DEBUG Log.LogDebug("Couldn't find LootRoller.InitializeMagicItem."); #endif return; } var itemDrop = ComponentCache.GetComponent <ItemDrop>(context.Item); if (EpicLoot.EpicLoot.CanBeMagicItem(itemDrop.m_itemData)) { var extendedItemData = new ExtendedItemData(itemDrop.m_itemData); var rarity = RollRarity(config); if (rarity is Rarity.None) { return; } if (rarity is Rarity.Unique) { MakeUnique(itemDrop, extendedItemData, modConfig); } else { //Make magic. var epicLootRarity = RarityToItemRarity(rarity); if (epicLootRarity is not null) { MakeMagic(epicLootRarity.Value, itemDrop, extendedItemData, context.Pos); } } } }
public void Modify(DropContext context) { if (context?.Item is null) { return; } if (context?.Extended?.Config?.SetQualityLevel <= 0) { return; } var itemDrop = ComponentCache.GetComponent <ItemDrop>(context.Item); Log.LogTrace($"Setting level of item '{context.Item.name}' to {context.Extended.Config.SetQualityLevel.Value}"); itemDrop.m_itemData.m_quality = context.Extended.Config.SetQualityLevel; }
public void Modify(DropContext context) { if (context?.Item is null) { return; } if (context?.Extended?.Config?.SetDurability < 0) { return; } var itemDrop = ComponentCache.GetComponent <ItemDrop>(context.Item); Log.LogTrace($"Setting durability of item '{context.Item.name}' to {context.Extended.Config.SetDurability.Value}"); itemDrop.m_itemData.m_durability = context.Extended.Config.SetDurability; }
private void SetDrop(DropContext dist, string name, string varName) { if (dist != null) { var dq = new DataCube(name, DataStatement.DROP, varName); if (dist.fields().GetText() != "") { string[] s = dist.fields().GetText().Split(','); for (int i = 0; i < s.Length; i++) { dq.Fields.Add(new State.DataField(s[i], s[i])); } } dq.Drop = true; DataCubes.Add(dq); } }