示例#1
0
    public PieceView CreatePieceView(BoardPiece piece, Transform parent)
    {
        PieceView view = Instantiate <PieceView>(piecePrefab, parent, false);

        view.piece = piece;
        return(view);
    }
示例#2
0
 public void LockPiece(PieceView piece)
 {
     boardView.LockPiece(piece);
     gameEngine.LockPiece(piece.piece);
     mAimController.ShowGuideLine();
     mAimController.UpdateGuideLine(0.3f, () => mCanShoot = true);
 }
示例#3
0
        public PieceController(Piece model, PieceView view)
        {
            _model = model;
            _view  = view;

            _view.Initialize(_model);
        }
示例#4
0
    private void DrawSession()
    {
        pieces = new PieceView[MatchController.ME.session.board.GetLength(0), MatchController.ME.session.board.GetLength(1)];

        float initalX = 0;
        float initalY = boardSize.y;


        for (int i = 0; i < MatchController.ME.session.board.GetLength(0); i++)
        {
            for (int j = 0; j < MatchController.ME.session.board.GetLength(1); j++)
            {
                GameObject gb = (GameObject)Instantiate(Resources.Load("Prefab/Piece"), pieceContainer.transform);
                PieceView  pc = gb.AddComponent <PieceView>();
                pc.Initate(MatchController.ME.session.board[i, j]);
                pc.piecePosition.anchoredPosition = new Vector2(initalX, initalY);
                pieces[i, j] = pc;
                initalX     += 265f;
                pc.button.onClick.AddListener(() => PieceChosen(pc));
                MovePiece(pc, true);
            }
            initalX  = 0;
            initalY -= 256;
        }

        Invoke(nameof(CheckResult), 3);
    }
示例#5
0
    private void Awake()
    {
        _view = GetComponent <PieceView>();

        Assert.IsNotNull(_view);
        Assert.IsTrue(gameObject.CompareTag(TagName));
    }
    private void CheckerboardOnPieceMoved(Checkerboard sender, Vector2Int origin, Vector2Int target)
    {
        ClearSelection();

        PieceView pieceView = grid[origin.x, origin.y].pieceView;

        pieceView.MoveTo(TilespaceToLocalspace(target));
        pieceView.gridPosition = target;

        grid[target.x, target.y].pieceView = pieceView;
        grid[origin.x, origin.y].pieceView = null;
    }
    private void PieceViewOnClick(PieceView sender, Vector2Int gridPosition)
    {
        if (!canSelect)
        {
            return;
        }
        if (checkerboard.GetAt(gridPosition) != checkerboard.currentPlayerColor)
        {
            return;
        }

        Select(gridPosition);
    }
示例#8
0
        private void ButtonValidation_OnClick(object sender, RoutedEventArgs e)
        {
            PieceView pv = _selectedControl.Content as PieceView;

            if (pv == null)
            {
                return;
            }

            ChosenType   = pv.Piece.Type;
            DialogResult = true;
            Close();
        }
示例#9
0
    private void DestroyPieces(List <Piece> piecesToDestroy)
    {
        foreach (Piece pc in piecesToDestroy)
        {
            Tupple    pos     = new Tupple(pc.tupplePosition.line, pc.tupplePosition.column);
            PieceView current = pieces[pos.line, pos.column];

            if (current != null)
            {
                current.DestroyPiece();
                pieces[pos.line, pos.column] = null;
            }
        }
    }
    private PieceView AddPiece(Vector2Int gridPosition, bool isWhite)
    {
        PieceView prefab = isWhite ? whiteCheckerPiecePrefab : blackCheckerPiecePrefab;

        Assert.IsNotNull(prefab);

        PieceView piece = Instantiate(prefab, piecesParent);

        piece.transform.localPosition = TilespaceToLocalspace(gridPosition);
        piece.gridPosition            = gridPosition;
        piece.OnClick += (sender) => PieceViewOnClick(sender, sender.gridPosition);

        return(piece);
    }
示例#11
0
    private void PieceChosen(PieceView p)
    {
        if (countClick == 0)
        {
            first = p;
            countClick++;
            return;
        }

        second     = p;
        countClick = 0;

        MatchController.ME.RequestMovement(first.currentPiece, second.currentPiece);
    }
示例#12
0
    public void InitializeViewData(GameRenderData data)
    {
        _resultsContainer.gameObject.SetActive(false);
        _resultsContainer.InitializeViewData(data.OnGetToMenu);

        _gridSize  = data.GridSize;
        _piecePool = data.GridList;

        for (int i = 0; i < _gridSize.x; i++)
        {
            List <CellView> cells = new List <CellView>();
            for (int j = 0; j < _gridSize.y; j++)
            {
                GameObject pieceGO = _gridPieces.gameObject.AddChild(_piecePrefab);
                pieceGO.transform.localScale = Vector3.one;
                PieceView piece   = pieceGO.GetComponent <PieceView>();
                PieceDO   pieceDo = data.GridList[i][j];

                if (piece != null)
                {
                    piece.Initialize(pieceDo);
                    piece.transform.localPosition = new Vector3(PIECE_WIDTH * i - _offsetX, PIECE_HEIGHT * j - _offsetY);
                }

                GameObject cellGO = _gridCells.gameObject.AddChild(_cellPrefab);
                cellGO.transform.localScale    = Vector3.one;
                cellGO.transform.localPosition = piece.transform.localPosition;
                cellGO.name = String.Format("cell {0}/{1}", i, j);
                CellView cell = cellGO.GetComponent <CellView>();
                cell.Piece = piece;
                cell.Initialize(data.SelectCell);
                cells.Add(cell);
            }
            _cells.Add(cells);
        }
        SetNeighbors();

        _piecePrefab.SetActive(false);
        _cellPrefab.SetActive(false);

        _currentScore = 0;
        _scoreCounter = new NguiLabelCounterInt(_scoreLabel);
        _scoreCounter.SetInitialCounterValue(_currentScore);

        _currentDiamondScore      = 0;
        _diamondProgressBar.value = 0;
        _addDiamondPiece          = data.AddDiamondPiece;
    }
        public void PieceTest()
        {
            PieceView newPiece = new PieceView();

            newPiece.Width = 200; newPiece.Height = 200;
            int thisPiece = Pieces.createPiece(true, true, true, false, true, true, 24, 1, 2);

            thisPiece = Pieces.setDiagonals(thisPiece, false, true, true, false);
            newPiece.setPiece(thisPiece);
            MainGrid.Children.Add(newPiece);
            PieceView secondNewPiece = new PieceView();

            secondNewPiece.Width = 200; secondNewPiece.Height = 200;
            thisPiece            = Pieces.createPiece(false, false, false, false, false, false, 1, 3, 0);
            thisPiece            = Pieces.setAsLake(thisPiece);
            secondNewPiece.setPiece(thisPiece);
            MainGrid.Children.Add(secondNewPiece);
        }
示例#14
0
    private void DropNewPieces()
    {
        float initalX = 0;
        float initalY = boardSize.y;


        List <PieceView> newPiecesView = new List <PieceView>();

        for (int i = 0; i < newPieces.Count; i++)
        {
            for (int j = 0; j < newPieces[i].Count; j++)
            {
                GameObject gb = (GameObject)Instantiate(Resources.Load("Prefab/Piece"), pieceContainer.transform);
                PieceView  pc = gb.AddComponent <PieceView>();
                Piece      p  = newPieces[i][j];
                pc.Initate(p);
                pc.piecePosition.anchoredPosition = new Vector2(initalX, initalY);
                initalY -= 256f;
                pc.button.onClick.AddListener(() => PieceChosen(pc));
                newPiecesView.Add(pc);

                pieces[pc.currentPiece.tupplePosition.line, pc.currentPiece.tupplePosition.column] = pc;

                MovePiece(pc);
            }
            initalY  = 800;
            initalX += 265;
        }


        //RETUPLE
        for (int i = pieces.GetLength(0) - 1; i >= 0; i--)
        {
            for (int j = pieces.GetLength(1) - 1; j >= 0; j--)
            {
                pieces[i, j].currentPiece.tupplePosition = new Tupple(i, j);
                pieces[i, j].UpdateText();
                MovePiece(pieces[i, j]);
            }
        }

        first = second = null;
        Invoke(nameof(CheckResult), 0.5f);
    }
示例#15
0
    private void onPieceTapped(GeneralEvent e)
    {
        PieceView pieceView = e.data as PieceView;

        Debug.Log("Piece: " + pieceView.ToString());

        if (_playMoveState == PlayMoveState.SELECT_PAWNS)
        {
            CardData currentCard = activePlayer.hand.GetCard(_currentMoveRequest.handIndex);

            var piecePath = new MoveRequest.PiecePathData();
            piecePath.pieceIndex = pieceView.piece.index;

            var pathList = new List <MovePath>();
            if (_matchState.validator.GetValidPaths(pieceView.piece, currentCard, ref pathList))
            {
            }
        }
    }
示例#16
0
        void InitializePieceView(IntegerVector2 position, Vector3[,] columnMap, IGame game)
        {
            IBoard         board = game.Board;
            IReadOnlyPiece piece = board.GetPiece(position);

            if (piece == null)
            {
                return;
            }

            GameObject pieceViewObject = Instantiate(pieceViewPrefabs.Prefabs[(int)piece.Name]);

            pieceViewObject.transform.position = new Vector3(0, 0, -10);    //描画優先度の設定

            PieceView pieceViewComponent = pieceViewObject.GetComponent <PieceView>();

            pieceViewComponent.Initialize(piece, columnMap);
            pieceViewComponent.OnClicked.TakeUntilDestroy(this).Subscribe(onPieceClicked.Invoke);
            database.Add(piece, pieceViewComponent);
        }
示例#17
0
文件: BoardView.cs 项目: Xaer033/tuck
    protected override void OnViewUpdate()
    {
        base.OnViewUpdate();

        if (IsInvalid(InvalidationFlag.STATIC_DATA) && _board != null)
        {
            destroyBoardView();

            List <BoardPosition> boardPosList = _board.GetBoardPositionList();
            foreach (BoardPosition position in boardPosList)
            {
                if (!BoardPosition.IsInvalid(position))
                {
                    PegView pegView = Singleton.instance.cardResourceBank.CreatePegView(position, _pegsGroup);
                    _pegList.Add(pegView);
                }
            }

            List <BoardPieceGroup> pieceGroupList = _board.GetPieceGroupList();
            foreach (BoardPieceGroup group in pieceGroupList)
            {
                foreach (BoardPiece piece in group.pieceList)
                {
                    PieceView pieceView = Singleton.instance.cardResourceBank.CreatePieceView(piece, _piecesGroup);
                    _pieceList.Add(pieceView);
                }
            }
        }

        if (IsInvalid(InvalidationFlag.DYNAMIC_DATA))
        {
            Transform viewTransform = getViewTransform(viewIndex);
            if (_camera && viewTransform && _cameraTween == null)
            {
                tweenCameraTo(viewTransform);
            }
        }
    }
示例#18
0
    private void Update()
    {
        if (IsDropping == false)
        {
            return;
        }

        bool madeMove = false;

        for (int i = 0; i < _gridSize.x; i++)
        {
            for (int j = 0; j < _gridSize.y; j++)
            {
                PieceView piece = _piecePool[i][j].View;
                if (piece == null)
                {
                    continue;
                }

                piece.IsMoving = false;
                //Move down
                if (piece.transform.localPosition.y > PIECE_HEIGHT * j - _offsetY)
                {
                    piece.transform.localPosition = new Vector2(piece.transform.localPosition.x, piece.transform.localPosition.y - STEP);
                    madeMove = true;
                    //_cells[i][j].Piece = piece;
                    piece.IsMoving = true;
                }
            }
        }

        if (IsDropping && !madeMove)
        {
            IsDropping = false;
        }
    }
示例#19
0
        public PieceController CreateController(Piece model, PieceView view)
        {
            var controller = new PieceController(model, view);

            return(controller);
        }
示例#20
0
 public void Initialize(PieceView pieceView, Action completedEventHandler)
 {
     _pieceView             = pieceView;
     _completedEventHandler = completedEventHandler;
 }
示例#21
0
 private void MovePiece(PieceView p, bool initSession = false)
 {
     p.piecePosition.DOAnchorPos(MatchController.ME.Destiny(p.currentPiece.tupplePosition.line, p.currentPiece.tupplePosition.column), initSession? speedDraw : speedMatch)
     .SetEase(easeMatch);
 }
示例#22
0
 public void RemovePiece(PieceView piece)
 {
     boardView.RemovePiece(piece);
 }
示例#23
0
 private void ConfirmSwap(PieceView ft, PieceView sc)
 {
     pieces[sc.currentPiece.tupplePosition.line, sc.currentPiece.tupplePosition.column] = second;
     pieces[ft.currentPiece.tupplePosition.line, ft.currentPiece.tupplePosition.column] = first;
 }
示例#24
0
 public void RemovePiece(PieceView piece)
 {
     viewPieces.Remove(piece);
 }
示例#25
0
 public void LockPiece(PieceView piece)
 {
     viewPieces.Add(piece);
 }
示例#26
0
 public void OnCreateNextPiece()
 {
     mCurrentPiece = mChain.GetPiece();
 }
示例#27
0
 public void AddPiece(PieceView piece)
 {
     mPieces.Enqueue(piece);
     piece.transform.SetParent(mPiecesPositions[mPieces.Count - 1]);
     piece.transform.localPosition = Vector3.zero;
 }