Пример #1
0
        private void CalculateLevelOffset(IAffix affix, int itemLevel)
        {
            var actual            = affix.Levels.Count(l => l.Min <= Roll);
            var bestThisItemLevel = affix.Levels.Count(l => l.Level <= itemLevel);

            Offset      = affix.Levels.Count() - actual;
            LevelOffset = bestThisItemLevel - actual;
        }
Пример #2
0
        public bool IsValidOnBaseType(IAffix affix, BaseItemType baseItemType)
        {
            var affixType = affix.GetType();

            if (!AffixItemCategoryValidCombos.ContainsKey(affixType))
            {
                // No list of valid combos, so affix is valid on all types.
                return(true);
            }

            // If the affix has valid combos then the item category must be listed there for this
            // affix to be valid on this type.
            return(AffixItemCategoryValidCombos[affixType].Contains(GetItemCategory(baseItemType)));
        }
Пример #3
0
        public ItemMod(IAffix affix, string modText, int roll, int itemLevel)
        {
            Affix      = affix;
            _affixTier = affix[roll];

            Name         = _affixTier.Name;
            Text         = modText;
            Roll         = roll;
            MaxRoll      = affix.Levels.Last().Max;
            MaxRollLevel = _affixTier.Max;

            CalculateLevelOffset(affix, itemLevel);
            CalculateModQuality();
        }
Пример #4
0
 public SimpleModParser(IItemLexicon itemLexicon, IAffix affix)
 {
     _itemLexicon = itemLexicon;
     _affix       = affix;
 }