Example #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);
    }
Example #2
0
    public void getReflected(Vector2 hitPoint)
    {
        float   offsetX = Random.Range(-15, 15) / 100f;
        float   offsetY = Random.Range(-15, 15) / 100f;
        Vector2 realD   = new Vector2(-aimPoint.x + offsetX, -aimPoint.y + offsetY);
        Vector2 realKB  = new Vector2(-Knockback.x, Knockback.y);

        realD = Vector2.ClampMagnitude(realD, 1.0f);

        Vector3    newPos = new Vector3(hitPoint.x - aimPoint.x, hitPoint.y - aimPoint.y, 0);
        GameObject go     = Instantiate(gameObject, newPos, Quaternion.identity) as GameObject;
        LineHitbox line   = go.GetComponent <LineHitbox> ();

        line.setRange(range);
        line.Damage = Damage;
        line.setAimPoint(realD);
        line.Duration         = Duration;
        line.Knockback        = realKB;
        line.IsFixedKnockback = true;
        //line.Faction =
        //line.setFaction (faction);
        line.Creator = gameObject;
        //line.reflect = hitboxReflect;
        line.Stun = Stun;
        //line.mAttr = mAttrs;
    }
Example #3
0
    protected override void OnAttack()
    {
        base.OnAttack();
        LineHitbox lbox = GetComponent <HitboxMaker>().createLineHB(m_lineInfo.range, m_lineInfo.direction, m_lineInfo.HitboxOffset, m_lineInfo.Damage,
                                                                    m_lineInfo.Stun, m_lineInfo.HitboxDuration, m_lineInfo.Knockback, true, m_lineInfo.Element);

        lbox.Stun = m_lineInfo.Stun;
    }
Example #4
0
    public LineHitbox createLineHB(HitScanInfo hsi)
    {
        if (ListHitboxes.Instance == null)
        {
            Debug.LogWarning("LIstHitboxes not found. Please add a Gameobject with the ListHItboxes prefab");
            return(null);
        }
        var go = GameObject.Instantiate(ListHitboxes.Instance.HitboxLine, transform.position, Quaternion.identity);

        hsi.hitCallback.Add(RegisterHit);
        LineHitbox lh = go.GetComponent <LineHitbox>();

        lh.InitFromLineInfo(hsi, gameObject, GetComponent <FactionHolder>());
        return(lh);
    }