public void DoCommand(Command command) { switch (command.type) { case CommandType.DESCRIBE: DescribeCommand describeCommand = (DescribeCommand)command; describeCommand.Execute(mapController, describeCommand.id != null ? FindEntity(describeCommand.id) : null); break; case CommandType.SELECT: SelectCommand selectCommand = (SelectCommand)command; selectCommand.Execute(mapController, GetPlayerById(selectCommand.playerId)); break; case CommandType.PERFORMACTION: PerformActionCommand performActionCommand = (PerformActionCommand)command; performActionCommand.Execute(mapController, GetPlayerById(performActionCommand.playerId), GetPlayerById(performActionCommand.playerId).selectedEntity); break; case CommandType.ENDTURN: EndTurnCommand endTurnCommand = (EndTurnCommand)command; endTurnCommand.Execute(turnController); break; default: break; } }
public static Command ArrayToCommand(CommandType commandType, string[] inputs) { Command command = null; switch (commandType) { case CommandType.DESCRIBE: if (inputs[1].ToLower() == "all") { command = new DescribeCommand(1); } else if (inputs.Length > 2) { command = new DescribeCommand(1, new Coordinate(Int32.Parse(inputs[1]), Int32.Parse(inputs[2]))); } else { command = new DescribeCommand(1, inputs[1]); } break; case CommandType.SELECT: command = new SelectCommand(1, inputs[1]); break; case CommandType.PERFORMACTION: command = new PerformActionCommand(1, new Coordinate(Int32.Parse(inputs[1]), Int32.Parse(inputs[2])), new Mine(), ActionType.BUILD); break; case CommandType.ENDTURN: command = new EndTurnCommand(1); break; default: break; } return(command); }