Exemple #1
0
        public override void Invoke(ItemStack itemStack)
        {
            List <ValueMod> valueMods = new List <ValueMod>();

            ValueMod[] itemStackMods = itemStack.ExplicitMods;

            Mod[] availableMods = ModifierManager.GetModifiersForDomainAndTag(1, itemStack.Item.Tags.ToArray());
            availableMods = ModUtils.Filter(availableMods, itemStack.ItemLevel);
            foreach (ValueMod explicitMod in itemStackMods)
            {
                valueMods.Add(explicitMod);
            }
            switch (m_CountType)
            {
            case CountType.Single:
                RetierSingle(ref valueMods, availableMods);
                break;

            case CountType.Value:
                RetierCount(ref valueMods, m_Count, availableMods);
                break;

            case CountType.All:
                RetierAll(ref valueMods, availableMods);
                break;
            }
            itemStack.ExplicitMods = valueMods.ToArray();
        }
Exemple #2
0
        public override void Invoke(ItemStack itemStack)
        {
            Mod[]           availableMods = ModifierManager.GetModifiersForDomainAndTag(1, itemStack.Item.Tags.ToArray());
            List <ValueMod> valueMods     = new List <ValueMod>();

            foreach (ValueMod explicitMod in itemStack.ExplicitMods)
            {
                valueMods.Add(explicitMod);
            }
            availableMods = ModUtils.Filter(availableMods, itemStack.ItemLevel);
            availableMods = ModUtils.Filter(availableMods, valueMods.ToArray());
            ValueMod valueMod = ModUtils.Roll(availableMods, itemStack.Item.Tags.ToArray());

            if (valueMod == null)
            {
                return;
            }
            valueMods.Add(valueMod);
            itemStack.ExplicitMods = valueMods.ToArray();
        }
        public override void Invoke(ItemStack itemStack)
        {
            if (itemStack == null)
            {
                return;
            }
            int count = (int)m_ExplicitCount.Evaluate(UnityEngine.Random.Range(0.0f, 1.0f));

            Mod[] availableMods = ModifierManager.GetModifiersForDomainAndTag(1, itemStack.Item.Tags.ToArray());
            availableMods = ModUtils.Filter(availableMods, itemStack.ItemLevel);
            List <ValueMod> valueMods = new List <ValueMod>();

            for (int i = 0; i < count; i++)
            {
                availableMods = ModUtils.Filter(availableMods, valueMods.ToArray());
                ValueMod valueMod = ModUtils.Roll(availableMods, itemStack.Item.Tags.ToArray());
                if (valueMod != null)
                {
                    valueMods.Add(valueMod);
                }
            }
            itemStack.ExplicitMods = valueMods.ToArray();
        }