/// <summary>
    /// Called by the server, when the other player has deployed his mine.
    /// </summary>
    public void DeployHidden(int x, int y, int owner, int damage = 3)
    {
        ItemLandMine item = (ItemLandMine)ItemManager.CreatePrefabAtBlock(
            landMinePrefab,
            x,
            y);

        item.damage  = damage;
        item.ownerID = owner;

        MessageManager.CreateMessage("对方已布雷");


        otherPlayerReady = true;
        if (thisPlayerReady)
        {
            ShowWaitingPanel(false);
            GameController.instance.turnOwnerID = 0;
            GameController.instance.gamePhase   = GamePhase.DrawLine;
            HidePanel();

            MessageManager.CreateMessage("所有玩家布雷完毕,\n游戏开始!");
        }
    }
    public void Deploy(int playerIndex, int damage = 3)
    {
        int posX = posMarker.posX;
        int posY = posMarker.posY;

        ItemLandMine item = (ItemLandMine)ItemManager.CreatePrefabAtBlock(
            landMinePrefab,
            posX,
            posY);

        item.damage  = damage;
        item.ownerID = playerIndex;

        Destroy(posMarker.gameObject);

        if (GameController.gameMode == GameMode.LocalPVP)
        {
            GameController.instance.turnOwnerID++;

            if (GameController.currentPlayer >= GameController.instance.playerCount)
            {
                GameController.instance.turnOwnerID = 0;
                GameController.instance.gamePhase   = GamePhase.DrawLine;
                HidePanel();

                MessageManager.CreateMessage("所有玩家布雷完毕,\n游戏开始!");
                foreach (PlayerInstance K in GameController.instance.players)
                {
                    K.ShowExamineMineButton();
                }
            }
            else
            {
                BeginSetting();
                MessageManager.CreateMessage("地雷已设置,\n请下一位玩家布雷");
            }
        }
        else if (GameController.gameMode == GameMode.NetPVP)
        {
            //Since this is the place that a player decides where
            //his own mine is depolyed, we only handle this part here.
            OnlinePlayer.localPlayer.CmdCreateMine(posX, posY, OnlinePlayer.myID, damage);
            thisPlayerReady = true;
            //Note that the mine is already settled before the mode has be decided.

            //  In online mode, a player can always see his own mine.
            //No need to use any show mine buttons.
            item.Show();

            if (otherPlayerReady)
            {
                GameController.instance.turnOwnerID = 0;
                GameController.instance.gamePhase   = GamePhase.DrawLine;
                HidePanel();

                MessageManager.CreateMessage("所有玩家布雷完毕,\n游戏开始!");
            }
            else
            {
                ShowWaitingPanel(true);
            }
        }
    }