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; }
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))); }
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(); }
public SimpleModParser(IItemLexicon itemLexicon, IAffix affix) { _itemLexicon = itemLexicon; _affix = affix; }