Ejemplo n.º 1
0
 void Update()
 {
     if (target != null)
     {
         transform.rotation = Quaternion.Slerp(transform.rotation, Quaternion.LookRotation(target.position - transform.position), 5 * Time.deltaTime);
         if (Vector3.Distance(target.position, transform.position) >= 0.5)
         {
             transform.position += transform.forward * moveSpeed * Time.deltaTime;
         }
         else
         {
             if (target.tag == "Player")
             {
                 HpPlayer = target.GetComponent<PlayerStats>();
                 Destroy(gameObject);
                 HpPlayer.TakeDamage(damege);
             }
             else
             {
                 HpEnemy = target.GetComponent<EnemyHP>();
                 Destroy(gameObject);
                 HpEnemy.TakeDamage(damege);
             }
         }
     }
     if (target == null)
     {
         Destroy(gameObject);
     }
 }
Ejemplo n.º 2
0
 public void Shoot()
 {
     timer = 0f;
     gunAudio.Play();
     gunLight.enabled = true;
     gunParticles.Stop();
     gunParticles.Play();
     gunLine.enabled = true;
     gunLine.SetPosition(0, transform.position);
     shootRay.origin    = transform.position;
     shootRay.direction = rayHit.point - transform.position;
     shootRay.direction = new Vector3(shootRay.direction.x, 0.0f, shootRay.direction.z);
     if (Physics.Raycast(shootRay, out shootRayHit, range, shootableMask))
     {
         EnemyHP enemyHP = shootRayHit.collider.GetComponent <EnemyHP>();
         if (enemyHP != null)
         {
             enemyHP.TakeDamage(damagePerShot, shootRayHit.point);
         }
         gunLine.SetPosition(1, shootRayHit.point);
     }
     else
     {
         gunLine.SetPosition(1, shootRay.origin + shootRay.direction * range);
     }
 }
Ejemplo n.º 3
0
    private void Shoot()
    {
        _timer = 0f;

        _gunFlash.enabled = true;

        _lineRenderer.enabled = true;
        _lineRenderer.SetPosition(0, transform.position);

        _shootRay.origin    = transform.position;
        _shootRay.direction = transform.forward;
        Debug.Log(DamagePerShot * (Buff_2XDamage ? 2 : 1));
        if (Physics.Raycast(_shootRay, out _shootHit, ShootingDistance, _shootableMask))
        {
            EnemyHP enemyHealth = _shootHit.collider.GetComponent <EnemyHP>();

            if (enemyHealth != null)
            {
                enemyHealth.TakeDamage(DamagePerShot * (Buff_2XDamage ? 2 : 1));
            }
            _lineRenderer.SetPosition(1, _shootHit.point);
        }
        else
        {
            _lineRenderer.SetPosition(1, _shootRay.origin + _shootRay.direction * ShootingDistance);
        }
    }
Ejemplo n.º 4
0
 void Damage(Transform _target)
 {
     if (towerBullet)
     {
         EnemyHP enemyTarget = _target.GetComponent <EnemyHP>();
         if (enemyTarget != null)
         {
             enemyTarget.TakeDamage(damage);
         }
     }
     else if (TownHall)
     {
         GameObject.Find("GameManager").GetComponent <GameManagerScript>().TownHallHP -= damage;
         TownHall = false;
     }
     else
     {
         StructureHP structureTarget = _target.GetComponent <StructureHP>();
         if (structureTarget != null)
         {
             structureTarget.TakeDamage(damage);
         }
     }
     Destroy(gameObject);
 }
Ejemplo n.º 5
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.layer != 13 &&
            collision.gameObject.layer != 14 &&
            collision.gameObject.layer != 17 &&
            collision.gameObject.layer != 21)
        {
            GetComponent <CircleCollider2D>().enabled = false;
            rb.velocity      = Vector2.zero;
            transform.parent = collision.transform;
            hasHit           = true;
            rb.isKinematic   = true;
            gameObject.layer = 14;
            GetComponent <TrailRenderer>().emitting = false;
        }

        EnemyHP enemy = collision.GetComponent <EnemyHP>();

        if (enemy != null)
        {
            enemy.TakeDamage(damage);
            DamageIndicator.Create(enemy.transform.position, damage);
            FindObjectOfType <AudioManager>().Play("ArrowIn");
        }
    }
Ejemplo n.º 6
0
    void Damage(Transform enemy)
    {
        EnemyHP e = enemy.GetComponent <EnemyHP>();

        if (e != null)
        {
            e.TakeDamage(turretDamage);
        }
    }
Ejemplo n.º 7
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        EnemyHP enemy = collider.GetComponent <EnemyHP>();

        if (enemy != null)
        {
            enemy.TakeDamage(10);
        }
        Destroy(gameObject);
    }
Ejemplo n.º 8
0
    private void OnTriggerEnter(Collider Hit)
    {
        EnemyHP enemy = Hit.GetComponent <EnemyHP>();

        if (enemy != null)
        {
            enemy.TakeDamage(AttackDamage);
        }
        Destroy(gameObject);
    }
Ejemplo n.º 9
0
    void Attack()
    {
        //Bruh
        //Checks all colliders in circle of radius size 1f right now
        Collider2D[] colliders = Physics2D.OverlapCircleAll(
            new Vector2(transform.position.x + .5f * (controller.movement.facingRight? 1f : -1f), transform.position.y), .25f);

        bool somethingHit = false;

        SoundFXManager.instance.PlaySound("FX", "Woosh", false, .4f, .7f);

        for (int rep = 0; rep < colliders.Length; rep++)
        {
            EnemyHP hpComponent = colliders[rep].GetComponent <EnemyHP>();



            if (hpComponent != null)
            {
                hpComponent.TakeDamage(0);
                somethingHit = true;
            }

            EnemyMeleeBehavior  meleeBehavior  = colliders[rep].GetComponent <EnemyMeleeBehavior>();
            EnemyRangedBehavior rangedBehavior = colliders[rep].GetComponent <EnemyRangedBehavior>();

            if (meleeBehavior != null)
            {
                meleeBehavior.AddToVelocity(12f * (controller.movement.facingRight? Vector3.right : Vector3.left));
                somethingHit = true;
            }

            if (rangedBehavior != null)
            {
                rangedBehavior.AddToVelocity(12f * (controller.movement.facingRight? Vector3.right : Vector3.left));
                somethingHit = true;
            }

            Statue statue = colliders[rep].GetComponent <Statue>();

            if (statue != null)
            {
                statue.Break();
                somethingHit = true;
            }
        }

        if (somethingHit)
        {
            CameraFollow.INSTANCE.ShakeScreen(1f);
            SoundFXManager.instance.PlaySound("FX", "Shove");
        }

        CameraFollow.INSTANCE.ShakeScreen(.3f);
    }
Ejemplo n.º 10
0
    void HeavyAttack()
    {
        Collider2D[] colliders = Physics2D.OverlapBoxAll(
            new Vector2(transform.position.x + .75f * (controller.movement.facingRight? 1f : -1f), transform.position.y), new Vector2(1f, .7f), 0f);

        SoundFXManager.instance.PlaySound("FX", "Woosh", false, .5f, .5f);

        bool somethingHit = false;

        for (int rep = 0; rep < colliders.Length; rep++)
        {
            EnemyHP hpComponent = colliders[rep].GetComponent <EnemyHP>();

            if (hpComponent != null)
            {
                hpComponent.TakeDamage(1);
                somethingHit = true;
            }

            EnemyMeleeBehavior  meleeBehavior  = colliders[rep].GetComponent <EnemyMeleeBehavior>();
            EnemyRangedBehavior rangedBehavior = colliders[rep].GetComponent <EnemyRangedBehavior>();

            if (meleeBehavior != null)
            {
                meleeBehavior.AddToVelocity(1f * (controller.movement.facingRight? Vector3.right : Vector3.left));
                somethingHit = true;
            }

            if (rangedBehavior != null)
            {
                rangedBehavior.AddToVelocity(1f * (controller.movement.facingRight? Vector3.right : Vector3.left));
                somethingHit = true;
            }

            Statue statue = colliders[rep].GetComponent <Statue>();

            if (statue != null)
            {
                statue.Break();
                somethingHit = true;
            }
        }

        if (somethingHit)
        {
            CameraFollow.INSTANCE.ShakeScreen(1f);
            SoundFXManager.instance.PlaySound("FX", "Player_Attack");
        }

        CameraFollow.INSTANCE.ShakeScreen(1f);
    }
Ejemplo n.º 11
0
    void Shoot()
    {
        RaycastHit hitInfo;

        if (Physics.Raycast(cam.transform.position, cam.transform.forward, out hitInfo, range))
        {
            Debug.Log(hitInfo.transform.name);

            EnemyHP enemy = hitInfo.transform.GetComponent <EnemyHP>();
            if (enemy != null)
            {
                enemy.TakeDamage(damage);
            }
        }
    }
Ejemplo n.º 12
0
    void Explode(Vector3 point)
    {
        float radius = .5f;

        Collider[] cols = Physics.OverlapSphere(point, radius);
        foreach (Collider collider in cols)
        {
            EnemyHP hp = collider.GetComponentInParent <EnemyHP>();
            if (hp != null)
            {
                hp.TakeDamage();
            }
        }
        GameObject.Instantiate(explosion, transform.position, transform.rotation);
        Destroy(this.gameObject);
    }
    void Laser()
    {
        targetEnemyHP.TakeDamage(damageOverTime * Time.deltaTime);
        if (slowsEnemies)
        {
            targetEnemyHP.Slow(slowAmount);
        }

        if (lineRenderer.enabled == false)
        {
            lineRenderer.enabled = true;
        }


        lineRenderer.SetPosition(0, transform.position);
        lineRenderer.SetPosition(1, target.position);
    }
Ejemplo n.º 14
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.name != "Player")
     {
         EnemyHP enemy = other.GetComponent <EnemyHP>();
         if (enemy != null)
         {
             enemy.TakeDamage(damage);
             DamageIndicator.Create(enemy.transform.position, damage);
         }
         Instantiate(destroyEffect, transform.position, transform.rotation);
         if (Time.time > timeToDestroy)
         {
             timeToDestroy = Time.time + 10;
             Destroy(gameObject);
         }
     }
 }
Ejemplo n.º 15
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        switch (other.gameObject.tag)
        {
        case "Enemy":
            EnemyHP enemyHp = other.gameObject.GetComponent <EnemyHP>();
            enemyHp.TakeDamage(damage, direction * knockBack);

            if (reflectCount <= 0)
            {
                Destroy(gameObject);
            }
            else
            {
                ReflectBulletDirection(other.GetContact(0).normal.normalized);
                _body.velocity = direction * speed;
                _body.AddForce(direction * speed * 2f, ForceMode2D.Impulse);
                reflectCount--;
            }
            break;

        case "Ceiling":
        case "Wall":
        case "Floor":
            if (reflectCount <= 0)
            {
                Destroy(gameObject);
            }
            else
            {
                ReflectBulletDirection(other.GetContact(0).normal.normalized);
                _body.velocity = direction * speed;
                reflectCount--;
            }
            break;

        default:
            Destroy(gameObject);
            break;
        }
    }
Ejemplo n.º 16
0
    private void DoAttack()
    {
        animator_controller.SetTrigger("attack_anim");//do attack animation

        RaycastHit hit;

        Vector3 p1 = transform.position;

        //float distanceToObstacle = 0;

        Collider[] Enemy = Physics.OverlapCapsule(gameObject.transform.position, gameObject.transform.forward * 1, 1f, mask);

        for (int i = 0; i < Enemy.Length; i++)
        {
            if (Enemy[i].tag == "Enemy")
            {
                EnemyHP hitEnemy = Enemy[i].GetComponent <EnemyHP>();
                hitEnemy.TakeDamage(3f);
            }
        }
    }
Ejemplo n.º 17
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (!deflected)
     {
         Player character = other.GetComponent <Player>();
         try
         {
             character.TakeDamage(bulletDamage);
         }
         catch { }
     }
     else
     {
         EnemyHP character = other.GetComponent <EnemyHP>();
         try
         {
             character.TakeDamage(bulletDamage);
             DamageIndicator.Create(character.transform.position, bulletDamage);
         }
         catch { }
     }
     Instantiate(destroyParticles, transform.position, Quaternion.identity);
     Destroy(gameObject);
 }
Ejemplo n.º 18
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        switch (other.gameObject.tag)
        {
        case "Player":
            if (hp.isAlive)
            {
                PlayerHealth playerHealth = other.gameObject.GetComponentInParent <PlayerHealth>();
                playerHealth.TakeDamage(hp.enemyStats.damage);
                KnockBackOther(other.gameObject);
            }
            break;

        case "Enemy":
            KnockBackOther(other.gameObject);
            if (enemyMovement.frenzied)
            {
                EnemyHP enemyHp = other.gameObject.GetComponent <EnemyHP>();
                enemyHp.TakeDamage(hp.enemyStats.damage);
                KnockBackOther(other.gameObject);
            }
            break;
        }
    }