예제 #1
0
    private void Explode(bool collidedWithCore)
    {
        float finalDamage;

        sprite.SetActive(false);
        explosion.SetActive(true);
        StartCoroutine(DestroyObject());
        if (!collidedWithCore)
        {
            float distance = Vector2.Distance(transform.position, coreContainer.transform.position);
            print(distance + " = distance");
            if (distance >= 2.05f)
            {
                finalDamage = 0;
            }
            else
            {
                finalDamage = damage * (1 / (distance * 2f));
            }
        }
        else
        {
            finalDamage = 0;
        }

        Containerhealth containerHealth = coreContainer.GetComponent <Containerhealth>();

        if (containerHealth == null)
        {
            return;
        }
        int damageInt = Mathf.RoundToInt(finalDamage);

        containerHealth.TakeDamage(damageInt);
    }
예제 #2
0
    void OnTriggerEnter2D(Collider2D collision)
    {
        if (!isEnemyBullet && debounce)
        {
            debounce = false;
            Health health = collision.gameObject.GetComponent <Health>();
            if (health != null)
            {
                health.TakeDamage(20);
            }
        }

        //Containerhealth core = HitInfo.gameObject.transform.parent.gameObject.GetComponent<Containerhealth>();
        Containerhealth core = collision.gameObject.GetComponent <Containerhealth>();

        if (core != null && debounce)
        {
            debounce = false;
            core.TakeDamage(10);
        }
        Destroy(gameObject);
    }
예제 #3
0
 private void Start()
 {
     containerHealth = GameObject.Find("Core_Container").GetComponent <Containerhealth>();
     bossHealth      = OpponentHPIncreaser.initBossHealth;
     enemyHealth     = OpponentHPIncreaser.initEnemyHealth;
 }