public void Attach(BalloonString _balloonString, BalloonString.GrabSlot _grabSlot) { // Ignore if this was the last balloon we grabbed onto if (lastGrabbed == _balloonString) { return; } if (frozenTime > 0.0f) { return; } Vector3 newPosition = _grabSlot.transform.position; newPosition.z = transform.position.z; transform.position = newPosition; transform.rotation = _grabSlot.transform.rotation; joint.connectedBody = _balloonString.GetComponent <Rigidbody2D>(); currentGrabSlot = _grabSlot; joint.enabled = true; lastGrabbed = _balloonString; jumpsRemaining = numJumps; }
private static void RemoveBalloonString(GameObject unicorn) { BalloonString balloonString = instance.balloonStrings.Find(x => x.TrackedUnicorn() == unicorn); instance.balloonStrings.Remove(balloonString); balloonString?.Dispose(); }
private void AddBalloonString(GameObject unicorn) { if (!unicorn.TryGetComponent <CapturedEnemy>(out var capturedEnemyComponent)) { Debug.LogWarning("Something went horribly wrong, this unicorn has no CapturedEnemy component..."); } var maxBubbleDistance = capturedEnemyComponent.MaxDistanceToPlayer; var balloonString = new BalloonString(clownHand, capturedEnemyComponent, maxBubbleDistance, maximumSag, stringThickness, stringMaterial, stringColor, detail); balloonStrings.Add(balloonString); }