private static float GetMaxBonus(RarityModifier rarity) { var levelBonus = PlayerManager.Instance.PlayerStats.CombatLevel * 3; var rarityBonus = (levelBonus + MaximumFlatBonus[rarity]) * PercentageBonus[rarity]; return(levelBonus + rarityBonus); }
private Equipment GenerateRandomBonuses(EquipmentDefinition definition, RarityModifier rarity) { if (definition == null) { return(null); } switch (definition.EquipmentSlotId) { case EquipmentSlotId.Torso: return(m_ChestplateGenerator.GenerateBonuses(definition, rarity)); case EquipmentSlotId.Head: return(m_HelmetGenerator.GenerateBonuses(definition, rarity)); case EquipmentSlotId.Legs: return(m_PlatelegsGenerator.GenerateBonuses(definition, rarity)); case EquipmentSlotId.Weapon: return(m_WeaponGenerator.GenerateBonuses(definition, rarity)); default: throw new ArgumentException("I don't know what kind of item this is :D"); } }
public Equipment GenerateBonuses(EquipmentDefinition definition, RarityModifier rarity) { m_Log.Log($"I am generating a {definition.Name} item with rarity {rarity}", LogLevel.Info); m_Log.Log($"Base stats are {string.Join(", ", definition.StatBonuses.Select(m => $"{m.Key}: {m.Value}"))}", LogLevel.Info); if (definition.EquipmentSlotId != EquipmentSlotId.Weapon) { throw new ArgumentException("Equipment must be of type weapon, was " + definition.EquipmentSlotId); } var minBonus = MinimumFlatBonus[rarity]; var maxBonus = Mathf.RoundToInt(GetMaxBonus(rarity)); m_Log.Log($"Min bonus is {minBonus}", LogLevel.Info); m_Log.Log($"Max bonus is {maxBonus}", LogLevel.Info); return(GenerateEquipmentWithBonuses(definition, minBonus, maxBonus)); }