public override void UseEffect(Letter effector) { ModifyTrailBetweenPlayerAndThrowable(); switch (Letter.ToUpper()) { case "G": Thrower.SetGrappleDirection(transform.position, ropes); break; case "Y": Thrower.SetYank(effector, this.gameObject, ropes); break; default: Debug.Log(Letter + " is not a throwable item"); break; } DestroyAll(); }
public override void UseEffect(Letter effector) { float direction = GameManager.vectorToAngle(this.transform.position - Thrower.transform.position) - 90; Vector2 rope_pos = Thrower.transform.position; float distance = Vector2.Distance(this.transform.position, Thrower.transform.position); List <RopeSegment> ropes = new List <RopeSegment> (); for (float i = 0; i <= distance; i += 0.1f) { rope_pos = Vector2.Lerp(Thrower.transform.position, transform.position, i / distance); GameObject ropeobject = Instantiate(ropeSegment_prefab, rope_pos, Quaternion.Euler(0, 0, direction)) as GameObject; RopeSegment ropesegment = ropeobject.GetComponent <RopeSegment> (); ropesegment.SqrDistanceFromStart = Mathf.Pow(i, 2); ropes.Add(ropesegment); } if (linkingRope != null) { Destroy(linkingRope); } switch (Letter.ToUpper()) { case "G": Thrower.SetGrappleDirection(transform.position, ropes); break; case "Y": Thrower.SetYank(effector, this.gameObject, ropes); break; default: Debug.Log(Letter + " is not a throwable item"); break; } DestroyAll(); }