void OnTriggerEnter(Collider other)
    {
        if (collided)
        {
            return;
        }
        if (other.gameObject.layer == enemyLayer && other.tag == "Enemy")
        {
            //deal damage to the enemy
            CellScript script = other.GetComponent <CellScript>();
            if (script.infected)
            {
                script.TakeDamage(initialDamage);
            }
            collided = true;

            colliders[0].enabled = !colliders[0].enabled;
            colliders[1].enabled = !colliders[1].enabled;

            explosionMesh[0].enabled = false;
            Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0));
        }
        if (other.gameObject.layer == enemyLayer && other.tag == "Boss")
        {
            //deal damage to the enemy
            BossScript script = other.GetComponent <BossScript>();

            script.TakeDamage(initialDamage);

            collided = true;

            colliders[0].enabled = !colliders[0].enabled;
            colliders[1].enabled = !colliders[1].enabled;

            explosionMesh[0].enabled = false;
            Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0));
        }
        if (other.gameObject.layer != enemyLayer && other.gameObject.layer != shieldLayer)
        {
            collided = true;

            colliders[0].enabled = !colliders[0].enabled;
            colliders[1].enabled = !colliders[1].enabled;

            explosionMesh[0].enabled = false;
            Instantiate(explosionParticles, transform.position, Quaternion.Euler(90, 0, 0));
        }
    }
Esempio n. 2
0
    IEnumerator Shoot()
    {
        cooldown         = maxCooldown;
        heat            -= shootHeat;
        heatSlider.value = heat;
        //shooting logic
        RaycastHit2D hitInfo = Physics2D.Raycast(firepoint.position, firepoint.up);

        if (hitInfo && hitInfo.distance <= 4.2f)
        {
            EnemyScript     enemy     = hitInfo.transform.GetComponent <EnemyScript>();
            EnemyBombScript enemyBomb = hitInfo.transform.GetComponent <EnemyBombScript>();
            BossScript      boss      = hitInfo.transform.GetComponent <BossScript>();
            HumanBombScript humanBomb = hitInfo.transform.GetComponent <HumanBombScript>();

            if (enemy != null)
            {
                enemy.TakeDamage(damage);
            }
            else if (enemyBomb != null)
            {
                enemyBomb.Die();
            }
            else if (humanBomb != null)
            {
                humanBomb.Die();
            }
            else if (boss != null)
            {
                if (hitInfo.collider.name != "Shield")
                {
                    boss.TakeDamage(damage);
                }
            }
            Instantiate(impactEffect, hitInfo.point, Quaternion.identity);
            lineRenderer.SetPosition(0, firepoint.position);
            lineRenderer.SetPosition(1, hitInfo.point);
        }
        else
        {
            lineRenderer.SetPosition(0, firepoint.position);
            lineRenderer.SetPosition(1, firepoint.position + firepoint.up * 4.2f);
        }
        lineRenderer.enabled = true;
        yield return(new WaitForSeconds(0.02f));

        lineRenderer.enabled = false;
    }
Esempio n. 3
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        BossScript  boss  = collision.GetComponent <BossScript>();
        EnemyDamage enemy = collision.GetComponent <EnemyDamage>();

        if (enemy != null)
        {
            enemy.TakeDamage(damage);
        }
        else if (boss != null)
        {
            boss.TakeDamage(damage);
        }

        Instantiate(effect, transform.position, Quaternion.identity);


        Destroy(gameObject);
    }
Esempio n. 4
0
    private IEnumerator meleeAttack()
    {
        sideAnimator.SetTrigger("Attack");
        yield return(new WaitForSeconds(0.75f));

        foreach (EnemyScript enemy in meleeWeaponHitList)
        {
            enemy.TakeDamage(10);
        }
        if (boss)
        {
            boss.TakeDamage(10);
        }

        yield return(new WaitForSeconds(0.75f));

        canAttack = true;
        PlayerMovementController.PMC.canMove = true;
    }
Esempio n. 5
0
    private void OnTriggerEnter2D(Collider2D hitInfo)
    {
        KnightScript       knight       = hitInfo.GetComponent <KnightScript>();
        TinajaVaciaScript  tinajaVacia  = hitInfo.GetComponent <TinajaVaciaScript>();
        TinajaLlaveScript  tinajaLlave  = hitInfo.GetComponent <TinajaLlaveScript>();
        TinajaMonedaScript tinajaMoneda = hitInfo.GetComponent <TinajaMonedaScript>();
        CoinController     moneda       = hitInfo.GetComponent <CoinController>();
        BossScript         boss         = hitInfo.GetComponent <BossScript>();

        Debug.Log("HIT INFO" + hitInfo.name);
        if (knight != null)
        {
            knight.TakeDamage(damage);
            Destroy(gameObject, 0f);
        }
        else if (tinajaVacia != null)
        {
            tinajaVacia.TakeDamage(damage);
            Destroy(gameObject, 0f);
        }
        else if (tinajaLlave != null)
        {
            tinajaLlave.TakeDamage(damage);
            Destroy(gameObject, 0f);
        }
        else if (tinajaMoneda != null)
        {
            tinajaMoneda.TakeDamage(damage);
            Destroy(gameObject, 0f);
        }
        else if (boss != null)
        {
            boss.TakeDamage(damage);
            Destroy(gameObject, 0f);
        }
        else
        {
        }
    }
    void OnTriggerStay(Collider other)
    {
        if (!collided)
        {
            return;
        }
        if (other.gameObject.layer == enemyLayer && other.tag == "Enemy")
        {
            //deal damage to the enemy
            CellScript script = other.GetComponent <CellScript>();
            if (script.infected)
            {
                script.TakeDamage(explosionDamage * Time.deltaTime);
            }
        }
        if (other.gameObject.layer == enemyLayer && other.tag == "Boss")
        {
            //deal damage to the enemy
            BossScript script = other.GetComponent <BossScript>();

            script.TakeDamage(explosionDamage * Time.deltaTime);
        }
    }
Esempio n. 7
0
    private void OnTriggerEnter(Collider HitScan)
    {
        EnemyScript enemy = HitScan.GetComponent <EnemyScript>();

        if (enemy != null)
        {
            enemy.TakeDamage(1);
            Destroy(gameObject);
        }
        BossScript Boss = HitScan.GetComponent <BossScript>();

        if (Boss != null)
        {
            Boss.TakeDamage(1);
            Destroy(gameObject);
        }
        EarthScript Wall = HitScan.GetComponent <EarthScript>();

        if (Wall != null)
        {
            Destroy(gameObject);
        }
    }
Esempio n. 8
0
    void UpdateLazer()
    {
        var mousePos = (Vector2)cam.ScreenToWorldPoint(Input.mousePosition);

        lineRenderer.SetPosition(0, (Vector2)firePoint.position);
        startVFX.transform.position = (Vector2)firePoint.position;

        lineRenderer.SetPosition(1, mousePos);

        Vector2      direction = mousePos - (Vector2)transform.position;
        RaycastHit2D hit       = Physics2D.Raycast((Vector2)transform.position, direction.normalized, direction.magnitude);

        if (hit)
        {
            lineRenderer.SetPosition(1, hit.point);
            if (hit.collider.gameObject.tag == "Boss1")
            {
                BossScript bossScript = hit.collider.GetComponent <BossScript>();
                bossScript.TakeDamage(0.25f);
            }
        }

        endVFX.transform.position = lineRenderer.GetPosition(1);
    }
Esempio n. 9
0
    void OnTriggerEnter(Collider other)
    {
        if (!alive)
        {
            return;
        }
        if (!isEnemyBullet && other.gameObject.layer == enemyLayer && other.tag == "Enemy")
        {
            GameObject.Instantiate(particles, transform.position, transform.localRotation);
            //deal damage to the enemy
            CellScript script = other.GetComponent <CellScript>();
            if (script.infected)
            {
                script.SetVelocityDelta(transform.forward * 100);
                script.TakeDamage(damage);
            }
            alive = false;
        }
        if (!isEnemyBullet && other.gameObject.layer == enemyLayer && other.tag == "Boss")
        {
            GameObject.Instantiate(particles, transform.position, transform.localRotation);
            //deal damage to the enemy
            BossScript script = other.GetComponent <BossScript>();
            script.TakeDamage(damage);
            alive = false;
        }

        if (isEnemyBullet && other.gameObject.layer == playerLayer)
        {
            GameObject.Instantiate(particles, transform.position, transform.localRotation);

            PlayerScript script = other.GetComponent <PlayerScript>();
            script.TakeDamage(damage);
            alive = false;
        }

        if (isEnemyBullet && other.gameObject.layer == shieldLayer)
        {
            GameObject.Instantiate(particles, transform.position, transform.localRotation);
            SetAsFriendlyBullet();

            Vector3 delta = other.transform.position - transform.position;
            delta.Normalize();
            transform.forward -= 2 * delta;
            transform.forward.Normalize();
            lifeTime = 1.5f;
            alive    = true;
        }

        if (other.tag == "Bouncy")
        {
            GameObject.Instantiate(particles, transform.position, transform.localRotation);

            Vector3 delta = other.transform.position - transform.position;
            delta.Normalize();
            transform.forward -= 2 * delta;
            transform.forward.Normalize();
            lifeTime = 1.5f;
            alive    = true;
        }

        if (!isEnemyBullet && other.gameObject.layer != enemyLayer && other.gameObject.layer != shieldLayer)
        {
            alive = false;
        }
    }