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); }
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)); } }
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)); }