public Double Modify(EquipmentTarget target, Double sourceValue) { if (ModificationsByTarget?.ContainsKey(target) ?? false) { return ModificationsByTarget[target].Modification(sourceValue); } return sourceValue; }
public static EquipableItem New(String id, String name, String description, String itemTypeDetailsId, EquipmentTarget equipmentTarget, EquipableItemModification equipmentModification) { return New(id, name, description, itemTypeDetailsId, new Dictionary<EquipmentTarget, EquipableItemModification> { { equipmentTarget, equipmentModification } }); }
protected static Double ApplyEquipmentModifications(EquipmentTarget equipmentTarget, Double statValue, ReadOnlyDictionary<EquipmentSlot, EquipableItem> equippedItems) { if (equippedItems != null) { foreach (var item in equippedItems.Select(x => x.Value)) { statValue = item.Modify(equipmentTarget, statValue); } } return statValue; }