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();
    }
Exemple #2
0
    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();
    }