protected boolean allyCanDefend(Vector<Piece> attackingEnemies)
    {
        if(attackingEnemies.size() == 1)
        {
            Piece enemy = attackingEnemies.elementAt(0);
            int[][] enemyPath = enemy.drawPath(enemy.x, enemy.y, this.x, this.y);
            int enemyPathSize = enemyPath[0].length;

            Vector<Piece> allies = this.player.getAllyPieces(this.player.playerColor);

            for(int i = 0; i < allies.size(); i++)
            {
                for(int j = 0; j < enemyPathSize; j++)
                {
                    if(allies.get(i).getType() != Type.KING &&
                            (this.player.myGame.gameBoard.isValidMove(allies.get(i), enemyPath[0][j], enemyPath[1][j]) &&
                            allies.get(i).isValidPath(enemyPath[0][j], enemyPath[1][j])) ||
                            (this.player.myGame.gameBoard.isValidMove(allies.get(i), enemy.x, enemy.y) &&
                            allies.get(i).isValidPath(enemy.y, enemy.x)))
                    {
                        return true;
                    }
                }
            }
        }

        return false;
    }