Ejemplo n.º 1
0
    public LineHitbox createLineHB(float range, Vector2 aimPoint, Vector2 offset, float damage, float stun, float hitboxDuration,
                                   Vector2 knockback, bool followObj = true, ElementType element = ElementType.PHYSICAL)
    {
        if (m_physics != null)
        {
            aimPoint = m_physics.OrientVectorToDirection(aimPoint);
            offset   = m_physics.OrientVectorToDirection(offset);
        }
        Vector3    newPos = new Vector3(transform.position.x + offset.x, transform.position.y + offset.y, 0);
        GameObject go     = Instantiate(HitboxList.Instance.HitboxLine, newPos, Quaternion.identity) as GameObject;
        LineHitbox line   = go.GetComponent <LineHitbox> ();

        line.setRange(range);
        line.Damage = damage;
        line.setAimPoint(aimPoint);
        line.Duration = hitboxDuration;
        if (m_physics != null)
        {
            line.Knockback = m_physics.OrientVectorToDirection(knockback);
        }
        line.IsFixedKnockback = true;
        line.Creator          = gameObject;
        line.Faction          = Faction;
        line.AddElement(element);
        line.Stun = stun;
        line.Init();

        ExecuteEvents.Execute <ICustomMessageTarget> (gameObject, null, (x, y) => x.OnHitboxCreate(line));
        return(line);
    }