Esempio n. 1
0
    private void PrepareArrows(shootTypes shootType)
    {
        lastShootType = shootType;
        float distance = maxRight - maxLeft;
        float distanceBetweenArrows   = distance / 30;
        bool  shootDependingObjective = false;
        int   numberOfArrows          = 0;
        float offset;
        int   j;
        int   random;

        switch (shootType)
        {
        case shootTypes.NEW_SHOOT_TYPE_SMALL:
            random = Random.Range(-2, 3);
            for (int i = 0; i < 22; ++i)
            {
                if (i < 5)
                {
                    offset = 0f;
                    j      = i;
                }
                else if (i < 9)
                {
                    offset = 7f * distanceBetweenArrows;
                    j      = i - 5;
                }
                else if (i < 13)
                {
                    offset = 13 * distanceBetweenArrows;
                    j      = i - 9;
                }
                else if (i < 17)
                {
                    offset = 19f * distanceBetweenArrows;
                    j      = i - 13;
                }
                else
                {
                    offset = 25f * distanceBetweenArrows;
                    j      = i - 17;
                }

                arrows[i].gameObject.SetActive(false);
                arrows[i].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
                arrows[i + 22].gameObject.SetActive(false);
                arrows[i + 22].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                arrows[i + 22].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
                arrows[i + 44].gameObject.SetActive(false);
                arrows[i + 44].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                arrows[i + 44].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
            }
            break;

        case shootTypes.NEW_SHOOT_TYPE_NORMAL:
            random = Random.Range(-2, 3);
            for (int i = 0; i < 18; ++i)
            {
                if (i < 3)
                {
                    offset = 0f;
                    j      = i;
                }
                else if (i < 7)
                {
                    offset = 6f * distanceBetweenArrows;
                    j      = i - 3;
                }
                else if (i < 11)
                {
                    offset = 13 * distanceBetweenArrows;
                    j      = i - 7;
                }
                else if (i < 15)
                {
                    offset = 20f * distanceBetweenArrows;
                    j      = i - 11;
                }
                else
                {
                    offset = 27f * distanceBetweenArrows;
                    j      = i - 15;
                }

                arrows[i].gameObject.SetActive(false);
                arrows[i].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
                arrows[i + 18].gameObject.SetActive(false);
                arrows[i + 18].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                arrows[i + 18].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
                arrows[i + 36].gameObject.SetActive(false);
                arrows[i + 36].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                arrows[i + 36].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
            }
            break;

        case shootTypes.NEW_SHOOT_TYPE_BIG:
            random = Random.Range(-2, 3);
            for (int i = 0; i < 14; ++i)
            {
                if (i < 2)
                {
                    offset = 0f;
                    j      = i;
                }
                else if (i < 5)
                {
                    offset = 6f * distanceBetweenArrows;
                    j      = i - 2;
                }
                else if (i < 8)
                {
                    offset = 13 * distanceBetweenArrows;
                    j      = i - 5;
                }
                else if (i < 11)
                {
                    offset = 20f * distanceBetweenArrows;
                    j      = i - 8;
                }
                else
                {
                    offset = 27f * distanceBetweenArrows;
                    j      = i - 11;
                }

                arrows[i].gameObject.SetActive(false);
                arrows[i].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
                arrows[i + 14].gameObject.SetActive(false);
                arrows[i + 14].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                arrows[i + 14].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
                arrows[i + 28].gameObject.SetActive(false);
                arrows[i + 28].position         = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                arrows[i + 28].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove         = false;
            }
            break;

        case shootTypes.LEFT_TO_RIGHT:
            for (int i = 0; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                arrows[i].position         = new Vector3(maxLeft + i * distanceBetweenArrows, prepareArrowYPos, 0f);
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
            }
            break;

        case shootTypes.RIGHT_TO_LEFT:
            for (int i = 0; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                arrows[i].position         = new Vector3(maxRight - i * distanceBetweenArrows, prepareArrowYPos, 0f);
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
            }
            break;

        case shootTypes.SIDES_TO_MIDDLE:
            for (int i = 0; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                if (i % 2 == 0)
                {
                    arrows[i].position = new Vector3(maxRight - i / 2 * distanceBetweenArrows, prepareArrowYPos, 0f);
                }
                else
                {
                    arrows[i].position = new Vector3(maxLeft + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos, 0f);
                }
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
            }
            break;

        case shootTypes.ULTRA_DIFFICULT_ULTRA:
            for (int i = 0; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                if (i < (arrows.Length / 2))
                {
                    arrows[i].position = new Vector3(maxLeft + i * distanceBetweenArrows, prepareArrowYPos, 0f);
                }
                else
                {
                    arrows[i].position = new Vector3(maxRight - (i - arrows.Length / 2 + 0.5f) * distanceBetweenArrows, prepareArrowYPos, 0f);
                }
                arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                arrowsScript[i].canMove    = false;
            }
            break;


        case shootTypes.THREE_NEAR_GLITCH:
            shootDependingObjective = true;
            numberOfArrows          = 3;
            break;

        case shootTypes.FIVE_NEAR_GLITCH:
            shootDependingObjective = true;
            numberOfArrows          = 5;
            break;

        case shootTypes.SEVEN_NEAR_GLITCH:
            shootDependingObjective = true;
            numberOfArrows          = 7;
            break;

        case shootTypes.NINE_NEAR_GLITCH:
            shootDependingObjective = true;
            numberOfArrows          = 9;
            break;

        case shootTypes.ELEVEN_NEAR_GLITCH:
            shootDependingObjective = true;
            numberOfArrows          = 11;
            break;
        }

        if (shootDependingObjective)
        {
            for (int i = 0; i < numberOfArrows; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                if (i % 2 == 0)
                {
                    arrows[i].position = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i + numberOfArrows].position     = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows + distanceBetweenArrows / 2f, prepareArrowYPos + 1f, 0f);
                    arrows[i + numberOfArrows * 2].position = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows, prepareArrowYPos + 2f, 0f);
                }
                else
                {
                    arrows[i].position = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i + numberOfArrows].position     = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows + distanceBetweenArrows / 2f, prepareArrowYPos + 1f, 0f);
                    arrows[i + numberOfArrows * 2].position = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos + 2f, 0f);
                }
                arrows[i].rotation      = new Quaternion(0f, 0f, 0f, 0f);
                arrowsScript[i].canMove = false;
            }
            for (int i = numberOfArrows; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                arrowsScript[i].canMove = false;
            }
        }
    }
Esempio n. 2
0
    private void PrepareArrows(shootTypes shootType)
    {
        lastShootType = shootType;
        float distance = maxRight - maxLeft;
        float distanceBetweenArrows = distance / 30;
        bool shootDependingObjective = false;
        int numberOfArrows = 0;
        float offset;
        int j;
        int random;
        switch (shootType)
        {
            case shootTypes.NEW_SHOOT_TYPE_SMALL:
                random = Random.Range(-2, 3);
                for (int i = 0; i < 22; ++i)
                {
                    if (i < 5)
                    {
                        offset = 0f;
                        j = i;
                    }
                    else if (i < 9)
                    {
                        offset = 7f * distanceBetweenArrows;
                        j = i - 5;
                    }
                    else if (i < 13)
                    {
                        offset = 13 * distanceBetweenArrows;
                        j = i - 9;
                    }
                    else if (i < 17)
                    {
                        offset = 19f * distanceBetweenArrows;
                        j = i - 13;
                    }
                    else
                    {
                        offset = 25f * distanceBetweenArrows;
                        j = i - 17;
                    }

                    arrows[i].gameObject.SetActive(false);
                    arrows[i].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 22].gameObject.SetActive(false);
                    arrows[i + 22].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                    arrows[i + 22].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 44].gameObject.SetActive(false);
                    arrows[i + 44].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                    arrows[i + 44].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.NEW_SHOOT_TYPE_NORMAL:
                random = Random.Range(-2, 3);
                for (int i = 0; i < 18; ++i)
                {
                    if (i < 3)
                    {
                        offset = 0f;
                        j = i;
                    }
                    else if (i < 7)
                    {
                        offset = 6f * distanceBetweenArrows;
                        j = i - 3;
                    }
                    else if (i < 11)
                    {
                        offset = 13 * distanceBetweenArrows;
                        j = i - 7;
                    }
                    else if (i < 15)
                    {
                        offset = 20f * distanceBetweenArrows;
                        j = i - 11;
                    }
                    else
                    {
                        offset = 27f * distanceBetweenArrows;
                        j = i - 15;
                    }

                    arrows[i].gameObject.SetActive(false);
                    arrows[i].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 18].gameObject.SetActive(false);
                    arrows[i + 18].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                    arrows[i + 18].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 36].gameObject.SetActive(false);
                    arrows[i + 36].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                    arrows[i + 36].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.NEW_SHOOT_TYPE_BIG:
                random = Random.Range(-2, 3);
                for (int i = 0; i < 14; ++i)
                {
                    if (i < 2)
                    {
                        offset = 0f;
                        j = i;
                    }
                    else if (i < 5)
                    {
                        offset = 6f * distanceBetweenArrows;
                        j = i - 2;
                    }
                    else if (i < 8)
                    {
                        offset = 13 * distanceBetweenArrows;
                        j = i - 5;
                    }
                    else if (i < 11)
                    {
                        offset = 20f * distanceBetweenArrows;
                        j = i - 8;
                    }
                    else
                    {
                        offset = 27f * distanceBetweenArrows;
                        j = i - 11;
                    }

                    arrows[i].gameObject.SetActive(false);
                    arrows[i].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 14].gameObject.SetActive(false);
                    arrows[i + 14].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 2.0f, prepareArrowYPos, 0f);
                    arrows[i + 14].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                    arrows[i + 28].gameObject.SetActive(false);
                    arrows[i + 28].position = new Vector3(maxLeft + random * distanceBetweenArrows + offset + j * distanceBetweenArrows + distanceBetweenArrows / 4.0f, prepareArrowYPos, 0f);
                    arrows[i + 28].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.LEFT_TO_RIGHT:
                for (int i = 0; i < arrows.Length; ++i)
                {
                    arrows[i].gameObject.SetActive(false);
                    arrows[i].position = new Vector3(maxLeft + i * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.RIGHT_TO_LEFT:
                for (int i = 0; i < arrows.Length; ++i)
                {
                    arrows[i].gameObject.SetActive(false);
                    arrows[i].position = new Vector3(maxRight - i * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.SIDES_TO_MIDDLE:
                for (int i = 0; i < arrows.Length; ++i)
                {
                    arrows[i].gameObject.SetActive(false);
                    if (i % 2 == 0)
                    {
                        arrows[i].position = new Vector3(maxRight - i / 2 * distanceBetweenArrows, prepareArrowYPos, 0f);
                    }
                    else
                    {
                        arrows[i].position = new Vector3(maxLeft + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    }
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;
                }
                break;

            case shootTypes.ULTRA_DIFFICULT_ULTRA:
                for (int i = 0; i < arrows.Length; ++i)
                {
                    arrows[i].gameObject.SetActive(false);
                    if (i < (arrows.Length / 2))
                    {
                        arrows[i].position = new Vector3(maxLeft + i * distanceBetweenArrows, prepareArrowYPos, 0f);
                    }
                    else
                    {
                        arrows[i].position = new Vector3(maxRight - (i - arrows.Length / 2 + 0.5f) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    }
                    arrows[i].localEulerAngles = new Vector3(0f, 180f, 0f);
                    arrowsScript[i].canMove = false;

                }
                break;


            case shootTypes.THREE_NEAR_GLITCH:
                shootDependingObjective = true;
                numberOfArrows = 3;
                break;

            case shootTypes.FIVE_NEAR_GLITCH:
                shootDependingObjective = true;
                numberOfArrows = 5;
                break;

            case shootTypes.SEVEN_NEAR_GLITCH:
                shootDependingObjective = true;
                numberOfArrows = 7;
                break;

            case shootTypes.NINE_NEAR_GLITCH:
                shootDependingObjective = true;
                numberOfArrows = 9;
                break;

            case shootTypes.ELEVEN_NEAR_GLITCH:
                shootDependingObjective = true;
                numberOfArrows = 11;
                break;
        }

        if (shootDependingObjective)
        {
            for (int i = 0; i < numberOfArrows; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                if (i % 2 == 0)
                {
                    arrows[i].position = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i + numberOfArrows].position = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows + distanceBetweenArrows / 2f, prepareArrowYPos + 1f, 0f);
                    arrows[i + numberOfArrows * 2].position = new Vector3(objectiveTransform.position.x - (i / 2) * distanceBetweenArrows, prepareArrowYPos + 2f, 0f);
                }
                else
                {
                    arrows[i].position = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos, 0f);
                    arrows[i + numberOfArrows].position = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows + distanceBetweenArrows / 2f, prepareArrowYPos + 1f, 0f);
                    arrows[i + numberOfArrows * 2].position = new Vector3(objectiveTransform.position.x + (i / 2 + 1) * distanceBetweenArrows, prepareArrowYPos + 2f, 0f);
                }
                arrows[i].rotation = new Quaternion(0f, 0f, 0f, 0f);
                arrowsScript[i].canMove = false;

            }
            for (int i = numberOfArrows; i < arrows.Length; ++i)
            {
                arrows[i].gameObject.SetActive(false);
                arrowsScript[i].canMove = false;
            }

        }

    }