コード例 #1
0
    public void powerUpPositioned()
    {
        bombInput.OnCellSelected -= onOverCellChanged;
        Cell cellSelected = cellsManager.getCellUnderPoint(bombGO.transform.position);

        if (AudioManager.GetInstance())
        {
            AudioManager.GetInstance().Stop("bomb");
        }

        if (cellSelected != null)
        {
            if (cellSelected.contentType == Piece.EType.PIECE && cellSelected.occupied)
            {
                if (canUse)
                {
                    StartCoroutine(bombAnimation.startSameColorSearchAnimation(cellSelected));
                    DestroyImmediate(bombGO);
                    bombInput.OnDrop -= powerUpPositioned;
                    bombInput.enabled = false;

                    HighLightManager.GetInstance().turnOffHighLights(HighLightManager.EHighLightType.BOMB_POWERUP);
                    HighLightManager.GetInstance().turnOffHighLights(HighLightManager.EHighLightType.BOMB_SPECIFIC_COLOR);

                    OnComplete();
                }
                else
                {
                    onCompletedNoGems();
                }
            }
            else
            {
                cancel();
            }
        }
        else
        {
            cancel();
        }
    }
コード例 #2
0
    public void powerUpPositioned()
    {
        Cell cellSelected = cellsManager.getCellUnderPoint(destroyGO.transform.position);

        if (AudioManager.GetInstance())
        {
            AudioManager.GetInstance().Stop("ray");
        }

        if (cellSelected != null)
        {
            if (cellSelected.contentType == Piece.EType.PIECE && cellSelected.occupied)
            {
                if (canUse)
                {
                    StartCoroutine(destroyAnim.destroyColorSearchAnimation(cellSelected));
                    DestroyImmediate(destroyGO);
                    bombInput.OnDrop -= powerUpPositioned;
                    bombInput.enabled = false;

                    HighLightManager.GetInstance().turnOffHighLights(HighLightManager.EHighLightType.DESTROY_POWERUP);

                    OnComplete();
                }
                else
                {
                    onCompletedNoGems();
                }
            }
            else
            {
                cancel();
            }
        }
        else
        {
            cancel();
        }
    }
コード例 #3
0
    public void powerUpPositioned()
    {
        Cell cellSelected = cellsManager.getCellUnderPoint(powerUpGO.transform.position);

        if (cellSelected != null && canActivate)
        {
            if (cellSelected.cellType != Cell.EType.EMPTY_VISIBLE_CELL && cellSelected.cellType != Cell.EType.EMPTY)
            {
                if (canUse)
                {
                    //HACE
                    gameManager.useHintWord(true);
                    DestroyImmediate(powerUpGO);
                    powerUpInput.OnDrop -= powerUpPositioned;
                    powerUpInput.enabled = false;
                    HighLightManager.GetInstance().turnOffHighLights(HighLightManager.EHighLightType.WORD_HINT);
                    if (AudioManager.GetInstance())
                    {
                        AudioManager.GetInstance().Stop("helpPositonated");
                        AudioManager.GetInstance().Play("helpPositonated");
                    }
                    OnComplete();
                }
                else
                {
                    onCompletedNoGems();
                }
            }
            else
            {
                cancel();
            }
        }
        else
        {
            cancel();
        }
    }
コード例 #4
0
    void OnDrag(DragGesture gesture)
    {
        //Solo se ejecuta una vez por frame (multifinger puede llamarlo mas de una vez)
        if (lastTimeDraggedFrame == Time.frameCount || !enabled)
        {
            return;
        }

        lastTimeDraggedFrame = Time.frameCount;

        switch (gesture.Phase)
        {
        case (ContinuousGesturePhase.Started):
        {
            if (currentSelected != null)
            {
                activateRayCasters(false);
                somethingDragged = true;
                Vector3 posOverFinger = Camera.main.ScreenToWorldPoint(new Vector3(gesture.Position.x, gesture.Position.y, 0));
                posOverFinger.z = currentSelected.transform.position.z;

                posOverFinger += offsetPositionOverFinger;
                moveTo(currentSelected, posOverFinger, pieceSpeed);
                //currentSelected.transform.DOScale(selectedScale,.1f).SetId("InputBlock_SelectedScale");
                isOnPlayer(true);
            }
        }
        break;

        case (ContinuousGesturePhase.Updated):
        {
            if (currentSelected != null)
            {
                Vector3 posOverFinger = Camera.main.ScreenToWorldPoint(new Vector3(gesture.Position.x, gesture.Position.y, 0));
                posOverFinger.z = currentSelected.transform.position.z;

                posOverFinger += offsetPositionOverFinger;
                moveTo(currentSelected, posOverFinger, pieceSpeed);
            }
        }
        break;

        case (ContinuousGesturePhase.Ended):
        {
            if (currentSelected)
            {
                activateRayCasters(true);

                Cell cell = cellsManager.getCellUnderPoint(currentSelected.transform.position);


                if (cell != null)
                {
                    if (cell.cellType != Cell.EType.EMPTY && cell.cellType != Cell.EType.OBSTACLE_LETTER && !isWildCard(cell))
                    {
                        if (!canUse)
                        {
                            returnSelectedToInitialState(delaySpeed);
                            completePowerUpNoGems();
                        }
                        else
                        {
                            insertWildcard(cellsManager.getCellUnderPoint(currentSelected.transform.position));
                            completePowerUp(true);
                            destroySelected();
                        }
                    }
                    else
                    {
                        if (cell.cellType == Cell.EType.OBSTACLE_LETTER && OnPowerupOverObstacleLetter != null)
                        {
                            OnPowerupOverObstacleLetter();
                        }

                        returnSelectedToInitialState(delaySpeed);
                        completePowerUp(false);
                    }
                }
                else
                {
                    returnSelectedToInitialState(delaySpeed);
                    completePowerUp(false);
                }

                DOTween.Kill("InputBlock_Dragging", false);
            }
        }
        break;
        }
    }
コード例 #5
0
    void OnDrag(DragGesture gesture)
    {
        //Solo se ejecuta una vez por frame (multifinger puede llamarlo mas de una vez)
        if (!allowInput || lastTimeDraggedFrame == Time.frameCount)
        {
            return;
        }

        lastTimeDraggedFrame = Time.frameCount;

        switch (gesture.Phase)
        {
        case (ContinuousGesturePhase.Started):
        {
            if (currentSelected != null)
            {
                activateRayCasters(false);
                somethingDragged = true;

                Vector3 posOverFinger = Camera.main.ScreenToWorldPoint(new Vector3(gesture.Position.x, gesture.Position.y, 0));
                posOverFinger.z = currentSelected.transform.position.z;
                posOverFinger  += offsetPositionOverFinger;
                moveTo(currentSelected, posOverFinger, pieceSpeed);
                isOnPlayer(true);
            }
        }
        break;

        case (ContinuousGesturePhase.Updated):
        {
            if (currentSelected != null)
            {
                Vector3 posOverFinger = Camera.main.ScreenToWorldPoint(new Vector3(gesture.Position.x, gesture.Position.y, 0));
                posOverFinger.z = currentSelected.transform.position.z;
                posOverFinger  += offsetPositionOverFinger;
                moveTo(currentSelected, posOverFinger, pieceSpeed);

                if (OnCellSelected != null)
                {
                    Cell cellSelected = cellsManager.getCellUnderPoint(currentSelected.transform.position);
                    if (cellSelected != null)
                    {
                        if (cellSelected.content != null)
                        {
                            if (cellSelected.contentColor != Piece.EColor.LETTER_OBSTACLE &&
                                cellSelected.contentColor != Piece.EColor.NONE)
                            {
                                //if (selectedCellColor != null)
                                if (selectedCellColor != Piece.EColor.NONE)
                                {
                                    if (selectedCellColor != cellSelected.contentColor)
                                    {
                                        OnCellSelected(cellSelected);
                                    }
                                }
                                else
                                {
                                    selectedCellColor = cellSelected.contentColor;
                                    OnCellSelected(cellSelected);
                                }
                            }
                            else
                            {
                                OnCellSelected(null);
                            }
                        }
                        else
                        {
                            OnCellSelected(null);
                        }
                    }
                }
            }
        }
        break;

        case (ContinuousGesturePhase.Ended):
        {
            if (currentSelected)
            {
                activateRayCasters(true);
                if (OnDrop != null)
                {
                    OnDrop();
                }
                reset();
            }
        }
        break;
        }
    }