Exemplo n.º 1
0
    public void OnTriggerEnter2D(Collider2D c)
    {
        if (c.GetComponent <VIDE_Assign>() != null && isPlayer)
        {
            troop.inTrigger = c.GetComponent <VIDE_Assign>();
            Flip(c.transform);
            troop.diagUI.enabled = true;
            troop.TryInteract();
        }

        if (c.gameObject.tag == targettag)
        {
            Debug.Log("hit " + transform.parent.name);
            var dir   = c.gameObject.transform.parent.GetChild(0).up;
            var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

            GameObject pfx = pool.GetFx();
            pfx.SetActive(true);
            pfx.transform.position = transform.position;
            pfx.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
            //Instantiate(pfx, transform.position, Quaternion.AngleAxis(angle, Vector3.forward));

            troop.DamageEntity(troop.damage);
            if (isPlayer && troop.dialogue.activeInHierarchy)
            {
                troop.diagUI.EndDialogue(VD.nodeData);
            }
        }
    }
Exemplo n.º 2
0
    public void OnTriggerEnter2D(Collider2D c)
    {
        if (c.GetComponent <VIDE_Assign>() != null && isPlayer)
        {
            Debug.Log("okay??");
            troop.inTrigger = c.GetComponent <VIDE_Assign>();
            Flip(c.transform);
            troop.diagUI.enabled = true;
            troop.TryInteract();
        }

        if (c.gameObject.tag == targettag)
        {
            Ray          ray    = new Ray(transform.position, c.transform.parent.position - transform.position);
            RaycastHit2D rayhit = Physics2D.Raycast(ray.origin, ray.direction, Vector3.Distance(c.transform.parent.position, transform.position), wall);
            if (rayhit.collider == null)
            {
                if (!isPlayer)
                {
                    if (!hit)
                    {
                        hit = true;
                        Debug.Log("hit " + transform.parent.name);
                        //  var dir = c.gameObject.transform.parent.GetChild(0).up;
                        //      var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

                        pfx = pool.GetFx();
                        pfx.SetActive(true);
                        pfx.transform.position = transform.position;
                        pfx.transform.up       = c.gameObject.transform.parent.position - transform.parent.position;
                        //     pfx.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
                        //Instantiate(pfx, transform.position, Quaternion.AngleAxis(angle, Vector3.forward));

                        troop.DamageEntity(troop.damage);
                        if (isPlayer && troop.dialogue.activeInHierarchy)
                        {
                            troop.diagUI.EndDialogue(VD.nodeData);
                        }
                    }
                }

                else
                {
                    Debug.Log("hit " + transform.parent.name);
                    var dir   = c.gameObject.transform.parent.GetChild(0).up;
                    var angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;

                    pfx = pool.GetFx();
                    pfx.SetActive(true);
                    pfx.transform.position = transform.position;
                    pfx.transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
                    //Instantiate(pfx, transform.position, Quaternion.AngleAxis(angle, Vector3.forward));

                    troop.DamageEntity(troop.damage);
                    if (isPlayer && troop.dialogue.activeInHierarchy)
                    {
                        troop.diagUI.EndDialogue(VD.nodeData);
                    }
                }
            }
        }
    }