public static double ComputeEffect(AugmentorType AttachedType, int AttachedQuantity, bool RequiresInput, int ProcessingTime = 60) { if (AttachedType == AugmentorType.Output) { return(OutputAugmentor.ComputeEffect(AttachedQuantity, RequiresInput)); } else if (AttachedType == AugmentorType.Speed) { return(SpeedAugmentor.ComputeEffect(AttachedQuantity, RequiresInput)); } else if (AttachedType == AugmentorType.Efficiency) { return(EfficiencyAugmentor.ComputeEffect(AttachedQuantity, RequiresInput)); } else if (AttachedType == AugmentorType.Quality) { return(QualityAugmentor.ComputeEffect(AttachedQuantity, RequiresInput)); } else if (AttachedType == AugmentorType.Production) { return(ProductionAugmentor.ComputeEffect(AttachedQuantity, RequiresInput)); } else if (AttachedType == AugmentorType.Duplication) { return(DuplicationAugmentor.ComputeEffect(AttachedQuantity, RequiresInput, ProcessingTime)); } else { throw new NotImplementedException(string.Format("Unrecognized AugmentorType: {0}", AttachedType.ToString())); } }