Damage() public method

Reduces the damage the enemy takes by it's armor.
public Damage ( int damage ) : void
damage int Damage inflicted before armor reduction.
return void
    /// <summary>
    /// Ons the trigger enter2 d.
    /// </summary>
    /// <param name="collision">Collision.</param>
    protected override void OnTriggerEnter2D(Collider2D collision)
    {
        // In respawn mode, don't interact
        if (respawning)
        {
            return;
        }

        // If collision was with an enemy
        EnemyBase enemyPlane = collision.GetComponent <EnemyBase>();

        if (enemyPlane != null)
        {
            Damage();
            enemyPlane.Damage();
        }

        // If collision was with a projectile
        Projectile shoot = collision.GetComponent <Projectile>();

        if (shoot != null)
        {
            // Return projectile to pool
            collision.gameObject.SetActive(false);
            Damage(shoot.damage);
        }
    }
Beispiel #2
0
    private void OnParticleCollision(GameObject other)
    {
        EnemyBase enemy = other.GetComponentInParent <EnemyBase>();

        if (!enemy)
        {
            return;
        }

        enemy.Damage(turret ? turret.damage : damage);
    }
Beispiel #3
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        if (collider.gameObject.tag == "Enemy")
        {
            //collider.gameObject.name = "hit_enemy";
            //Debug.Log(collider.gameObject.name);

            EnemyBase enemy = collider.gameObject.GetComponent <EnemyBase>();

            if (attacked_enemy_list.Contains(enemy) == false)
            {
                enemy.Damage(m_iAttack, m_strAttribute, m_iCount);
                m_iCount += 1;
                attacked_enemy_list.Add(enemy);
            }
        }
    }
Beispiel #4
0
 protected virtual void OnTriggerEnter(Collider collision)
 {
     if (collision.gameObject.GetComponent <EnemyBase>() != null)
     {
         EnemyBase enemy = collision.gameObject.GetComponent <EnemyBase>();
         if (hitSound != null)
         {
             AudioManager.instance.PlayAudio(hitSound);
         }
         enemy.Damage(damage);
         Destroy(gameObject);
     }
     else if (collision.gameObject.tag == "Map")
     {
         Destroy(gameObject);
     }
 }
Beispiel #5
0
    IEnumerator Ult3()
    {
        StartCoroutine(CanAttack(10f));
        GameObject     lazer         = Instantiate(spawnObject, gameObject.transform.position, Quaternion.identity);
        SpriteRenderer lazerSize     = lazer.GetComponent <SpriteRenderer>();
        BoxCollider2D  lazerCollider = lazer.GetComponent <BoxCollider2D>();

        if (!faceRight)
        {
            Vector3 theScale = lazer.transform.localScale;
            theScale.x *= -1;
            lazer.transform.localScale = theScale;
        }
        float elapsed  = 0.0f;
        float duration = 0.3f;

        while (elapsed < duration)
        {
            lazerSize.size       = new Vector2(Mathf.Lerp(0.1f, 20, elapsed / duration), 2);
            lazerCollider.size   = lazerSize.size;
            lazerCollider.offset = new Vector2(lazerSize.size.x / 2, 0);
            elapsed += Time.deltaTime;
            yield return(null);
        }

        Collider2D[] enemies = Physics2D.OverlapBoxAll(lazerCollider.bounds.center, lazerCollider.bounds.size, 0f, isEnemy);

        foreach (Collider2D enemy in enemies)
        {
            EnemyBase enemyBase = enemy.GetComponent <EnemyBase>();
            if (!enemyBase)
            {
                continue;
            }
            enemyBase.Damage(GameMaster.GM.items.weaponDatas[weaponID].weaponDamage * 10 * ultModifier, 60, GameMaster.GM.items.weaponDatas[weaponID].knockBack);
            if (enemyBase.health < 0)
            {
                player.Damage(-1);
            }
        }

        Destroy(lazer);
    }
Beispiel #6
0
    /// <summary>
    /// 衝突判定
    /// </summary>
    /// <param name="target"></param>
    void OnTriggerEnter(Collider target)
    {
        if (target.gameObject.layer != Layer.Enemy)
        {
            return;
        }

        EnemyBase enemyBase = target.GetComponent <EnemyBase>();

        if (enemyBase == null)
        {
            return;
        }
        enemyBase.Damage(power);

        if (IsForgiveDestroy())
        {
            Destroy(gameObject);
        }
    }
Beispiel #7
0
    private void FixedUpdate()
    {
        destroyTimer += Time.fixedDeltaTime;
        if (destroyTimer > lifeTime)
        {
            Destroy(gameObject);
        }
        transform.Translate(flySpeed * transform.right * directRight * Time.fixedDeltaTime);
        Collider2D[] currentCollisions = Physics2D.OverlapBoxAll(weaponCollider.bounds.center, weaponCollider.bounds.size, 0f, isEnemy);

        foreach (Collider2D doDamage in currentCollisions)
        {
            EnemyBase enemy = doDamage.GetComponent <EnemyBase>();
            if (enemy)
            {
                enemy.Damage(damage, 0, 0);
            }
            Destroy(gameObject);
        }
    }
Beispiel #8
0
 private void Detonate()
 {
     detonated = true;
     target.Damage(1);
     Destroy(gameObject);
 }
Beispiel #9
0
    // Update is called once per frame
    void Update()
    {
        Vector3 moveVector = new Vector3(transform.position.x - targetPosition.x,
                                         transform.position.y - targetPosition.y,
                                         transform.position.z - targetPosition.z).normalized;

        // update the position
        transform.position = new Vector3(transform.position.x - moveVector.x * Speed * Time.deltaTime,
                                         transform.position.y - moveVector.y * Speed * Time.deltaTime,
                                         transform.position.z - moveVector.z * Speed * Time.deltaTime);

        distance += Time.deltaTime * Speed;

        if (distance > range ||
            Vector3.Distance(transform.position, new Vector3(targetPosition.x, targetPosition.y, targetPosition.z)) < 1)
        {
            Destroy(gameObject);
            if (target != null)
            {
                if (Slow > 0)
                {
                    target.Slow(Slow, SlowDuration, (int)Owner.TurretType);
                }

                target.Damage(Damage, (int)Owner.TurretType);
                if (DamageOverTime > 0)
                {
                    if (Owner.TurretType == TurretType.EarthTurret)
                    {
                    }
                    else if (Owner.TurretType == TurretType.FireTurret)
                    {
                        target.DamageOverTime(DamageOverTime, 3.0f, .5f, EnemyState.Burn, (int)Owner.TurretType);
                    }
                    else if (Owner.TurretType == TurretType.StormTurret)
                    {
                    }
                    else if (Owner.TurretType == TurretType.VoodooTurret)
                    {
                        target.DamageOverTime(DamageOverTime, 3.0f, .5f, EnemyState.Poison, (int)Owner.TurretType);
                    }
                }

                if (Owner.MindControlDuration > 0)
                {
                    target.MindControl(Owner.MindControlDuration, (int)Owner.TurretType);
                }

                if (AoeDamage > 0 && AoeRange > 0)
                {
                    foreach (EnemyBase enemy in objectManager.enemies)
                    {
                        Vector3 temp1 = new Vector3(targetPosition.x, enemy.transform.position.y, targetPosition.z);
                        if (Vector3.Distance(temp1, enemy.transform.position) < AoeRange)
                        {
                            var        enemyTargetPosition = enemy.transform.position;
                            GameObject projectileObject    = Instantiate(Owner.projectileType, targetPosition, Quaternion.LookRotation(enemyTargetPosition)) as GameObject;
                            Projectile projectile          = projectileObject.GetComponent <Projectile>();
                            projectile.Damage         = AoeDamage;
                            projectile.target         = enemy;
                            projectile.targetPosition = enemyTargetPosition;
                            projectile.Owner          = this.Owner;
                            projectile.DamageOverTime = DamageOverTime;
                        }
                    }
                }
            }
        }
    }