static void Main(string[] args) { var gc = new GreenClass(); gc.ProcessColourImplentation(); var rc = new RedClass(); rc.ProcessColourImplentation(); var wc = new WhiteClass(); wc.ProcessColourImplentation(); var bc = new BlackClass(); bc.ProcessColourImplentation(); }
public IClass GetClass(ClassType type) { MainWindow.CompositeLogger.LogMessage($"ClassFactory.GetClass called {type}"); IClass classResult; switch (type) { case ClassType.Red: classResult = new RedClass(); break; case ClassType.White: classResult = new WhiteClass(); break; case ClassType.Green: classResult = new GreenClass(); break; case ClassType.Yellow: classResult = new YellowClass(); break; default: throw new ArgumentOutOfRangeException(nameof(type), type, null); } var result = _classes.FirstOrDefault(c => c.Name == type.ToString()); if (result == null) { return(null); } classResult.DamageModifier = result.DamageModifier; classResult.SpeedModifier = result.SpeedModifier; return(classResult); }