Exemplo n.º 1
0
    public void Contact(Collider other)
    {
        if (hit || other.CompareTag("Player"))
        {
            return;
        }

        hit = true;

        EnemyPart enemyPart = other.GetComponent <EnemyPart>();

        if (enemyPart)
        {
            enemyPart.HitPart(this);
        }

        if (_meshRenderer)
        {
            _meshRenderer.enabled = false;
        }

        if (_trailRenderer)
        {
            _trailRenderer.enabled = false;
        }

        GetComponent <Collider>().enabled = false;
        Destroy(gameObject, 0.5f);
    }
Exemplo n.º 2
0
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            FindObjectOfType <AudioManager>().Play("brustArrow");
            arrow.transform.SetParent(ep.transform);
            communAction(arrow);
            Destroy(arrow.gameObject, 8);
        }
    }
Exemplo n.º 3
0
    public VoidBoss(BossPrototype proto) : base(proto)
    {
        Body.mAABB.Offset    += (Vector3)proto.bodyOffset;
        HurtBox.mAABB.Offset += (Vector3)proto.bodyOffset;
        Body.mIsKinematic     = true;
        abilityFlags.SetFlag(AbilityFlag.Heavy, true);

        leftHand         = new EnemyPart(Resources.Load("Prototypes/Entity/Enemies/VoidBossLeftHand") as EnemyPrototype, this);
        leftHand.offset  = new Vector2(175, -95);
        rightHand        = new EnemyPart(Resources.Load("Prototypes/Entity/Enemies/VoidBossRightHand") as EnemyPrototype, this);
        rightHand.offset = new Vector2(-175, -95);
    }
Exemplo n.º 4
0
    // Use this for initialization
    void Start()
    {
        _enemyPart = GetComponentInParent <EnemyPart>();

        if (_enemyPart && goldenPointFX && goldenPointHitFX)
        {
            bool goldenShot;

            goldenShot = (Random.Range(1, 101) <= 5);
            if (goldenShot)
            {
                gp = Instantiate(goldenPointFX, transform);
                gp.transform.localPosition = Vector3.zero;

                _enemyPart._goldenPoint = this;
            }
        }
    }
Exemplo n.º 5
0
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            FindObjectOfType <AudioManager>().Play("basicArrow");
            communAction(arrow);
            ep.hit(damage, GameController.arrowsType.basic);
            arrow.transform.SetParent(ep.transform);

            if (ArrowDamage)
            {
                Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity);
            }
            Destroy(arrow.gameObject, 8);
        }
    }
Exemplo n.º 6
0
    public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow)
    {
        EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>();

        if (!ep._enemy.dead)
        {
            if (ArrowDamage)
            {
                Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity);
            }

            if (!partsHited.Contains(ep))
            {
                FindObjectOfType <AudioManager>().Play("piercingArrow");
                partsHited.Add(ep);
                ep.hit(damage, GameController.arrowsType.piercing);
            }
        }
    }
Exemplo n.º 7
0
    void OnCollisionEnter(Collision col)
    {
        if (reachTarget)
        {
            return;
        }
        CatchSomething();
        EnemyPart enemyPart = col.transform.gameObject.GetComponent <EnemyPart>();

        if (enemyPart != null)
        {
            transform.SetParent(col.transform);
            OnReachedEnemy(enemyPart.GetComponentInParent <Enemy> ());
        }
        Bomb bomb = col.transform.gameObject.GetComponent <Bomb>();

        if (bomb != null)
        {
            bomb.Explote();
            Reset();
        }
    }
Exemplo n.º 8
0
    void communAction(ArrowMoviment arrow)
    {
        Instantiate(explosionParticle, transform.position, Quaternion.identity);
        RaycastHit2D[] callisions = Physics2D.CircleCastAll(transform.position, explosionRadio, new Vector2(1, 1), 0, arrow.targetLayerMask);

        for (int i = 0; i < callisions.Length; i++)
        {
            GameObject go = callisions[i].collider.gameObject;
            if (go.tag == "Enemy")
            {
                EnemyPart ep = callisions[i].collider.gameObject.GetComponent <EnemyPart>();

                if (!enemiesHited.Contains(ep._enemy))
                {
                    enemiesHited.Add(ep._enemy);
                    ep.hit(damage, GameController.arrowsType.brust);
                }
            }
            else if (go.tag == "Item")
            {
                go.GetComponent <IItem>().Action();
                Destroy(go, 0.5f);
            }
            else if (go.tag == "Projetil")
            {
                go.GetComponent <Projetil>().damage(damage);
            }
        }

        arrow.collisionOccurred = true;
        arrow.arrowHead.SetActive(false);

        arrow._rBody.velocity    = Vector3.zero;
        arrow._rBody.isKinematic = true;
        arrow._rBody.constraints = RigidbodyConstraints.FreezeAll;
    }