public void StartJuicing(BridgeConnectionType p_type, Vector3 p_targetPosition)
 {
     if (!_tapJuicing)
     {
         StartCoroutine(TapJuice());
     }
     InputJuicer.StartJuicing(p_type, p_targetPosition);
 }
    public void StartJuicing(BridgeConnectionType p_type, Vector3 p_targetPosition)
    {
        Vector3 bezierPoint     = Vector3.zero;
        Vector3 bezierDirection = Vector3.zero;
        Vector3 startPosition   = Vector3.zero;
        Vector3 middlePosition  = Vector3.zero;

        switch (p_type)
        {
        case BridgeConnectionType.Blue:
        {
            bezierDirection = BlueRefRect.up;
            startPosition   = BlueRefRect.position;
            break;
        }

        case BridgeConnectionType.Green:
        {
            bezierDirection = GreenRefRect.up;
            startPosition   = GreenRefRect.position;
            break;
        }

        case BridgeConnectionType.Red:
        {
            bezierDirection = RedRefRect.up;
            startPosition   = GreenRefRect.position;
            break;
        }
        }


        //bezierDirection = Quaternion.AngleAxis(180, Vector3.forward) * bezierDirection;

        Debug.Log(bezierDirection);

        //Debug.Break();

        middlePosition = (startPosition + p_targetPosition) / 2;

        Plane middlePlane = new Plane(Vector3.up, middlePosition);

        middlePlane = new Plane(middlePosition, middlePosition + Vector3.forward, middlePosition + Vector3.right);
        float distanceToPlane = 0f;
        bool  hits            = middlePlane.Raycast(new Ray(startPosition, bezierDirection), out distanceToPlane);

        if (!hits)
        {
            Debug.Log("You f****d up");
        }

        bezierPoint = startPosition + bezierDirection * distanceToPlane;

        LetThemFly(p_type, bezierPoint, p_targetPosition);
    }
Esempio n. 3
0
 public bool Add(BridgeConnectionType p_type)
 {
     if (p_type == Sequence[_currentSequenceIndex])
     {
         _currentSequenceIndex++;
         return(true);
     }
     else
     {
         return(false);
     }
 }
    private void LetThemFly(BridgeConnectionType p_type, Vector3 p_bezierPosition, Vector3 p_targetPosition)
    {
        Material  selectedMaterial       = null;
        Transform selectedStartTransform = null;

        switch (p_type)
        {
        case BridgeConnectionType.Blue:
        {
            selectedStartTransform = BlueRefRect;
            selectedMaterial       = BlueMaterial;
            break;
        }

        case BridgeConnectionType.Green:
        {
            selectedStartTransform = GreenRefRect;
            selectedMaterial       = GreenMaterial;
            break;
        }

        case BridgeConnectionType.Red:
        {
            selectedStartTransform = RedRefRect;
            selectedMaterial       = RedMaterial;
            break;
        }
        }

        for (int i = 0; i < 40; i++)
        {
            GameObject temp = Instantiate(CubePrefab);
            temp.transform.position = selectedStartTransform.position
                                      + selectedStartTransform.right * Random.Range(-1f, 1f)
                                      + selectedStartTransform.up * Random.Range(-0.45f, 0.45f);

            temp.transform.localScale *= 1.3f;

            temp.GetComponent <MeshRenderer>().material = selectedMaterial;

            temp.SetActive(false);

            FlyingLittleCube tempScript = temp.AddComponent <FlyingLittleCube>();
            tempScript.Fly(temp.transform.position
                           , p_bezierPosition + Vector3.right * Random.Range(-1f, 1f) + Vector3.up * Random.Range(1f, 1f)
                           , p_targetPosition + Vector3.right * Random.Range(-0.35f, 0.35f) + Vector3.up * Random.Range(-0.1f, 0.1f));
        }
    }
Esempio n. 5
0
    public void PlayPiece(BridgeConnectionType p_type)
    {
        bool result = Bridges[_currentBridgeIndex].Play(p_type);

        if (result)
        {
            Bridges[_currentBridgeIndex].RebuildConnection();
            ScreenJ.ScreenZoomOut();
            Debug.Log("Correct");
        }
        else
        {
            timeDecreaser.displayTimeDecrease();
            DecreaseGameTime(2f);
            Debug.Log("Incorrect");
        }

        if (Bridges[_currentBridgeIndex].IsComplete())
        {
            Debug.Log("Bridge Complete");
            StartCoroutine(DelayedBridgeCollapse());
            GoToNextBridge();
        }
    }
 public bool Play(BridgeConnectionType p_type)
 {
     return(_sequence.Add(p_type));
 }