//成り判定 返り値が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); }