Exemple #1
0
    //成り判定 返り値がtrueならガイドを設置したので移動処理を中断
    bool PromoteCheck(Guide gui, PieceBase piece)
    {
        int pos_x = gui.pos_x;
        int pos_y = gui.pos_y;

        //ガイドが移動用なら成り用ガイドを設置するか判定
        if (piece.move.CanPromote == true && piece.have_flag == false)          //成ることが出来る駒で配置ではない
        {
            bool check = false;
            //移動先が相手陣地なら
            if (CheckEnemyTerritory(pos_y))
            {
                check = true;
            }
            //元の場所が相手陣地だった場合
            if (CheckEnemyTerritory(piece.board_pos_y))
            {
                check = true;
            }
            if (check == true)
            {
                //成ることが出来る
                //成らないと動ける場所がなくなる場合を調べる
                if (CheckMovePos(piece.kind, pos_y) == true)
                {
                    Guide.CreateGuidePromote(pos_x, pos_y, piece);                     //成るかどうか選択させる
                    return(true);
                }
                else
                {
                    //動ける場所がない
                    Debug.Log("成り");
                    piece.SetPromote(true);                     //強制的に成る
                    return(false);
                }
            }
        }
        //成ることが出来ない
        return(false);
    }