public ItemBonuses Build(ItemStatsBalance itemStatsBalance, int level, double additionalKoef) { var minBonusesCount = itemStatsBalance.GetMinItemBonusesCount(level); var maxBonusesCount = itemStatsBalance.GetMaxItemBonusesCount(level); var bonusesCount = Dice.GetRange(minBonusesCount, maxBonusesCount); var itemBonusesBuilder = new ItemBonusesBuilder(itemStatsBalance, level); foreach (var itemBonuseEnum in itemStatsBalance.PossibleItemBonuses.TakeRandom(bonusesCount)) { itemBonusesBuilder.Calculate(itemBonuseEnum, ItemFactory.RollItemDamageKoef(additionalKoef)); } return(itemBonusesBuilder.Build()); }
public ItemBonusesBuilder(ItemStatsBalance itemStatsBalance, int level) { Level = level; _itemStatsBalance = itemStatsBalance; _itemBonuses = new ItemBonuses(); }