Пример #1
0
        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;
        }
Пример #3
0
    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);
     }
 }