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); }
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); }