예제 #1
0
        public override void Execute(string[] commandArgs)
        {
            //create {shipType} {shipName} {starSystem} {enhancement1 enhancements2 ...}

            StarshipType starshipType = CastStringToStarshipType(commandArgs[1]);
            string       starshipName = commandArgs[2];

            if (GetStarshipByName(starshipName) != null)
            {
                Console.WriteLine(Messages.DuplicateShipName);
            }


            string starshipLocation = commandArgs[3];

            var ship = new ShipFactory();

            IStarship starship = ship.CreateShip(starshipType, starshipName, this.GameEngine.Galaxy.GetStarSystemByName(starshipLocation));

            if (commandArgs.Length > 3)
            {
                var enhancementFactory = new EnhancementFactory();
                for (int i = 4; i < commandArgs.Length; i++)
                {
                    starship.AddEnhancement(
                        enhancementFactory
                        .Create(CastStringToEnhancementType(commandArgs[i])));
                }
            }

            this.GameEngine.Starships.Add(starship);

            Console.WriteLine(Messages.CreatedShip, starshipType, starshipName);
        }
예제 #2
0
        public override void Execute(string[] commandArgs)
        {
            StarshipType shipType           = (StarshipType)Enum.Parse(typeof(StarshipType), commandArgs[1], true);
            var          shipName           = commandArgs[2];
            StarSystem   system             = this.GameEngine.Galaxy.GetStarSystemByName(commandArgs[3]);
            var          enchans            = new List <Enhancement>();
            var          enchansmentFactory = new EnhancementFactory();

            for (int i = 4; i < commandArgs.Length; i++)
            {
                var ench = enchansmentFactory.Create((EnhancementType)Enum.Parse(typeof(EnhancementType), commandArgs[i], true));
                enchans.Add(ench);
            }

            var shipFactory = new ShipFactory();
            var ship        = shipFactory.CreateShip(shipType, shipName, system);

            enchans.ForEach(e => ship.AddEnhancement(e));

            this.GameEngine.Starships.Add(ship);
        }