Exemple #1
0
    //ATAQUE
    public void Attack()
    {
        Debug.Log(wannaTalk);
        if (wannaTalk)
        {
            wannaTalk = false;
            npcToTalk.awakeConversationMethods();
            return;
        }
        if (!canAttack)
        {
            return;
        }

        if (!mySource.isPlaying)
        {
            mySource.PlayOneShot(attackClip);
        }
        anim.SetTrigger("attack");
        //Activate particle
        instanceFromOrientation(attackParticles, .2f);

        Collider2D[] enemigos = Physics2D.OverlapCircleAll(attackZone.transform.position, range, enemyLabel);
        for (int i = 0; i < enemigos.Length; i++)
        {
            enemigos[i].GetComponent <Enemy>().takeDamage(this.getAttack(), zoneLoc, thrust);
        }

        //Para el puzzle de electricidad y Prim
        Collider2D[] cables = Physics2D.OverlapCircleAll(attackZone.transform.position, range, cableLayer);
        PrimManager  pm     = FindObjectOfType <PrimManager>();

        if (pm != null && cables.Length != 0)
        {
            pm.setCableToActive(cables[0].gameObject);
            pm.tryAristaActivation(cables[0].GetComponent <Cable>().arista);
        }
        //Para el graviton de Arcaelum
        Collider2D[] graviton = Physics2D.OverlapCircleAll(attackZone.transform.position, range, gravitonLayer);
        for (int i = 0; i < graviton.Length; i++)
        {
            Debug.Log("Deflecting");
            graviton[i].GetComponent <GravitonArcaelum>().deflect();
        }
        //Para el daño a Arcaelum
        Collider2D[] arc = Physics2D.OverlapCircleAll(attackZone.transform.position, range, arcLayer);
        for (int i = 0; i < arc.Length; i++)
        {
            arc[i].GetComponent <Arcaelum>().drainLife(attackPower);
        }
    }