public void finishGame(final GameResult pGameResult) {

        ScreenManager.getInstance().getBaseGameActivity().getEngine().registerUpdateHandler(new TimerHandler(0.5f, new ITimerCallback() {
            @Override
            public void onTimePassed(TimerHandler pTimerHandler) {
                ScreenManager.getInstance().getBaseGameActivity().getEngine().unregisterUpdateHandler(pTimerHandler);

                MainGameScene.this.mGomokuBoardLayer.hide();
                MainGameScene.this.mPlayerListLayer.hide();
                MainGameScene.this.mPlayerScoreLayer.hide();

                if (GameManager.getInstance().getCurrentGameMode() == GameMode.ONLINE) {
                    MainGameScene.this.mChatLayer.hide();
                }
            }
        }));
        
        if (GameManager.getInstance().getCurrentGameMode() == GameMode.ONLINE) {
            NetworkUtilities.sendStatusChangeRequest(GameManager.getInstance().getFirstPlayerName());
        }
        
        if (pGameResult == GameResult.WIN) {
            ScreenManager.getInstance().showWonLayer();
            if (GameManager.getInstance().getCurrentGameMode() == GameMode.ONLINE) {
                NetworkUtilities.sendAddScoreRequest(3, GameManager.getInstance().getFirstPlayerName());
            }
        } else if (pGameResult == GameResult.LOSE) {
            ScreenManager.getInstance().showLosedLayer();
        } else if (pGameResult == GameResult.DRAW) {
            ScreenManager.getInstance().showDrewLayer();
            if (GameManager.getInstance().getCurrentGameMode() == GameMode.ONLINE) {
                NetworkUtilities.sendAddScoreRequest(1, GameManager.getInstance().getFirstPlayerName());
            }
        }
    }