protected override bool Validate() { bool valid = true; if (!Coord.IsValid(AllyPos) || !Coord.IsValid(Target)) { ErrorMsg = INVALID_POS; valid = false; } else if (CurPlayer == null) { ErrorMsg = PLAYER; valid = false; } else if (CurPlayer.GetPawnAt(AllyPos) == null) { ErrorMsg = NO_PAWN; valid = false; } else if (!Boards.CellAt(Target).Equals(BoardConsts.EMPTY)) { ErrorMsg = OCCUPIED_CELL; valid = false; } return(valid); }