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(); }
public virtual void UseEffect(Letter effector) { switch (Letter.ToUpper()) { case "E": effector.startDisappear(); break; case "H": effector.SetMoveAmount(Quaternion.Euler(0, 0, -effector.transform.localRotation.eulerAngles.z) * new Vector3(0, 0.02f, 0)); break; case "L": effector.SetMoveAmount(Quaternion.Euler(0, 0, -effector.transform.localRotation.eulerAngles.z) * new Vector3(0, -0.02f, 0)); break; case "M": if (!effector.canBeHarvested) { effector.SetUnharvested(false); } break; case "G": Thrower.SetGrappleDirection(transform.position, null); break; case "Y": if (Thrower.collisionLetter != effector) { int direction = Math.Sign(Thrower.transform.position.x - this.transform.position.x); effector.SetMoveAmount(Quaternion.Euler(0, 0, -effector.transform.localRotation.eulerAngles.z) * new Vector3(direction * 0.02f, 0, 0)); } break; default: Debug.Log(Letter + " is not a throwable item"); break; } }