Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }