public Event.Game.ValidMovesEvent requestValidMoves(Event.Game.RequestValidMovesEvent e) { bool isPlaying = this.gameMachine.getPlayers()[e.PlayerId()].getCurrentState().GetType().Equals(typeof(PlayerPlayingState)); if (isPlaying) { int r = e.getPositionDetail().getRow(); int c = e.getPositionDetail().getCol(); List<Position> validPositions = this.gameMachine.getBoardMachine().getBoard().getPieces()[r, c].getValidNextPositions(); List<PositionDetail> pDetails = new List<PositionDetail>(); foreach (Position p in validPositions) { PositionDetail pd = new PositionDetail(p.getRow(), p.getCol()); pDetails.Add(pd); } return new ValidMovesEvent(pDetails); } return ValidMovesEvent.notFound(); }