Пример #1
0
        void Start()
        {
            _thisTog.onValueChanged.AddListener((result) =>
            {
                if (_thisTog.isOn && isFirstSelect)
                {
                    ESelectStartSide selectStartColor = BoardManage.instance.presentPieces.eSelectSide;
                    var _remove = selectStartColor.Equals(ESelectStartSide.FirstSide) ? 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);
                    Destroy(_piece.GetComponent <Rigidbody>());
                    _piece.eSelectSide                 = selectStartColor;
                    _piece.transform.localPosition     = Vector3.zero;
                    BoardManage.instance.presentPieces = _piece;

                    if (selectStartColor.Equals(ESelectStartSide.FirstSide))
                    {
                        _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;
            });
        }
Пример #2
0
        void PawnMove()
        {
            PawnMoveSlot(_side.Equals(ESelectStartSide.FirstSide) ? _slot.x + 1 : _slot.x - 1);
            if (BoardManage.instance.detailBoxes[_slot.x].boxManages[_slot.y].GetPieces().isFirstMove)
            {
                PawnMoveSlotFirst(_side.Equals(ESelectStartSide.FirstSide) ? 2 : -2);
            }

            void PawnMoveSlot(int slotX)
            {
                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))
                    {
                        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))
                    {
                        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));
                        }
                    }
                }
            }

            void PawnMoveSlotFirst(int slotX)
            {
                int _slotPlayer = _slot.x + slotX;

                if (BoardManage.instance.detailBoxes[slotX > 0 ? _slotPlayer - 1 : _slotPlayer + 1].boxManages[_slot.y].transform.childCount <= 0)
                {
                    if (BoardManage.instance.detailBoxes[_slotPlayer].boxManages[_slot.y].transform.childCount <= 0)
                    {
                        _allSlot.Add(new Vector2Int(_slotPlayer, _slot.y));
                    }
                }
            }
        }
Пример #3
0
 public void OffBoxInteraction(ESelectStartSide eSelectStartSide)
 {
     if (eSelectStartSide.Equals(ESelectStartSide.FirstSide))
     {
         allPiecesFirstPlayers.ForEach(item => { if (item)
                                                 {
                                                     item.thisCollider.enabled = true;
                                                 }
                                       });
         allPiecesSecondPlayers.ForEach(item => { if (item)
                                                  {
                                                      item.thisCollider.enabled = false;
                                                  }
                                        });
     }
     else
     {
         allPiecesFirstPlayers.ForEach(item => { if (item)
                                                 {
                                                     item.thisCollider.enabled = false;
                                                 }
                                       });
         allPiecesSecondPlayers.ForEach(item => { if (item)
                                                  {
                                                      item.thisCollider.enabled = true;
                                                  }
                                        });
     }
 }
Пример #4
0
        IEnumerator OffBoxInteraction(ESelectStartSide eSelectStartSide, float times = 0)
        {
            yield return(new WaitForSeconds(times));

            if (eSelectStartSide.Equals(ESelectStartSide.FirstSide))
            {
                allPiecesFirstPlayers.ForEach(item => { if (item)
                                                        {
                                                            item.thisCollider.enabled = true;
                                                        }
                                              });
                allPiecesSecondPlayers.ForEach(item => { if (item)
                                                         {
                                                             item.thisCollider.enabled = false;
                                                         }
                                               });
            }
            else
            {
                allPiecesFirstPlayers.ForEach(item => { if (item)
                                                        {
                                                            item.thisCollider.enabled = false;
                                                        }
                                              });
                allPiecesSecondPlayers.ForEach(item => { if (item)
                                                         {
                                                             item.thisCollider.enabled = true;
                                                         }
                                               });
            }
        }
Пример #5
0
 public void OnPointerClick(PointerEventData eventData)
 {
     if (!isClick && BoardManage.instance.eTurnPlayer.Equals(eSelectSide))
     {
         BoxManage _box = GetComponentInParent <BoxManage>();
         if (BoardManage.instance.checkersManage)
         {
             BoardManage.instance.checkersManage.ClearTemp();
             BoardManage.instance.checkersManage.oldSlot = _box.slot;
         }
         isClick          = !isClick;
         meshRdr.material = eSelectSide.Equals(ESelectStartSide.FirstSide) ? BoardManage.instance.selectionFirstMat : BoardManage.instance.selectionSecondMat;
         BoardManage.instance.subBoardMovePieces.CheckMovePieces(ePieces, eSelectSide, _box.slot);
         BoardManage.instance.presentPieces?.DefaulValue();
         BoardManage.instance.presentPieces = this;
     }
 }