void Start() { _thisTog.onValueChanged.AddListener((result) => { if (_thisTog.isOn && isFirstSelect) { ESelectStartColor selectStartColor = BoardManage.instance.presentPieces.eSelectSide; var _remove = selectStartColor.Equals(ESelectStartColor.FirstColor) ? BoardManage.instance.chessManage.allPiecesFirstPlayers.Remove(BoardManage.instance.presentPieces) : BoardManage.instance.chessManage.allPiecesSecondPlayers.Remove(BoardManage.instance.presentPieces); BoardManage.instance.presentTargetBox.ClearChild(); BasePieces _piece = Instantiate(SelectPieces(), BoardManage.instance.presentTargetBox.transform); _piece.eSelectSide = selectStartColor; if (selectStartColor.Equals(ESelectStartColor.FirstColor)) { _piece.meshRdr.material = BoardManage.instance.firstPlayerMat; BoardManage.instance.chessManage.allPiecesFirstPlayers.Add(_piece); } else { _piece.meshRdr.material = BoardManage.instance.secondPlayerMat; BoardManage.instance.chessManage.allPiecesSecondPlayers.Add(_piece); } EnchantPawn.CallBackSelectEnchant?.Invoke(false); } isFirstSelect = result; }); }
public void OnPointerClick(PointerEventData eventData) { if (!isClick && BoardManage.instance.eTurnPlayer.Equals(eSelectSide)) { isClick = !isClick; meshRdr.material = eSelectSide.Equals(ESelectStartColor.FirstColor) ? BoardManage.instance.selectionFirstMat : BoardManage.instance.selectionSecondMat; BoardManage.instance.subBoardMovePieces.CheckMovePieces(ePieces, eSelectSide, GetComponentInParent <BoxManage>().slot); BoardManage.instance.presentPieces?.DefaulValue(); BoardManage.instance.presentPieces = this; } }
void PawnMove() { PawnMoveSlot(_side.Equals(ESelectStartColor.FirstColor) ? _slot.x + 1 : _slot.x - 1); if (BoardManage.instance.detailBoxes[_slot.x].boxManages[_slot.y].GetPieces().isFirstMove) { PawnMoveSlot(_side.Equals(ESelectStartColor.FirstColor) ? _slot.x + 2 : _slot.x - 2, false); } void PawnMoveSlot(int slotX, bool isEat = true) { int _slotPlayer = slotX; if (BoardManage.instance.detailBoxes.CheckOutOfRange(_slotPlayer)) { // Up if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y].transform.childCount <= 0) { _allSlot.Add(new Vector2Int(_slotPlayer, _slot.y)); } // Left if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages.CheckOutOfRange(_slot.y - 1) && isEat) { var _piece = BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y - 1].GetPieces(); if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y - 1].transform.childCount > 0 && _piece != null && !_piece.eSelectSide.Equals(_side)) { _allSlot.Add(new Vector2Int(_slotPlayer, _slot.y - 1)); } } // Right if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages.CheckOutOfRange(_slot.y + 1) && isEat) { var _piece = BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y + 1].GetPieces(); if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y + 1].transform.childCount > 0 && _piece != null && !_piece.eSelectSide.Equals(_side)) { _allSlot.Add(new Vector2Int(_slotPlayer, _slot.y + 1)); } } } } }