コード例 #1
0
 void OnParticleCollision(GameObject other)
 {
     //Physics2D.IgnoreLayerCollision(8, 8);
     damage    = (Idamageable <float>)other.gameObject.GetComponent(typeof(Idamageable <float>));
     damageBit = Mathf.Ceil(Random.Range(6f, 13f));
     if (other.gameObject.tag == "Enemy Box" || other.gameObject.tag == "Boss")
     {
         damage.takeDamage(damageBit, .7f, 3);
         //Debug.Log(damageBit);
         //Destroy(other.gameObject);
         //subtract miniscule amounts of health here
     }
 }
コード例 #2
0
 void OnTriggerStay2D(Collider2D other)
 {
     damage = (Idamageable <float>)other.gameObject.GetComponent(typeof(Idamageable <float>));
     timer += Time.deltaTime;
     if (other.gameObject.tag == "Enemy Box" || other.gameObject.tag == "Boss")
     {
         if (timer > waitBefore)
         {
             hitEnemy = true;
             damage.takeDamage(damageLightning);
             timer      = 0f;
             waitBefore = 4f;
         }
     }
 }
コード例 #3
0
    private void OnTriggerEnter(Collider other)
    {
        if (other != null)
        {
            Idamageable damageableObj = other.gameObject.GetComponentInParent <Idamageable>();
            if (damageableObj != null)
            {
                damageableObj.Damage(damage);


                effect = Instantiate(effect, transform.position, Quaternion.identity) as GameObject;
                gameObject.SetActive(false);
            }
            else
            {
                gameObject.SetActive(false);
                effect = Instantiate(effect, transform.position, Quaternion.Euler(90, 0, 0)) as GameObject;
            }
        }
    }
コード例 #4
0
 //initialize the interface variables to call the damage function and apply the damage each bullet has
 void OnCollisionEnter2D(Collision2D coll)
 {
     damage    = (Idamageable <float>)coll.gameObject.GetComponent(typeof(Idamageable <float>));
     playerHit = (Idamageable <int>)coll.gameObject.GetComponent(typeof(Idamageable <int>));
     if (this.tag == "Normal Bullet" || this.tag == "Spread Bullet")
     {
         if (coll.collider.gameObject.tag == "Enemy Box" || coll.collider.gameObject.tag == "Boss")
         {
             hitEnemy = true;
             if (this.tag == "Normal Bullet")
             {
                 damage.takeDamage(damageNorm, damageMultiplier, 1);
             }
             else if (this.tag == "Spread Bullet")
             {
                 damage.takeDamage(damageSpread, damageMultiplier, 2);
             }
             //Destroy(coll.gameObject);
             Destroy(this.gameObject);
         }
     }
     else if (coll.collider.gameObject.tag == "Player" && counter != 0)
     {
         if (this.tag == "Enemy Bullet" || this.tag == "Boss bullet")
         {
             playerHit.takeDamage(enemyDamage);
             if (this.tag == "Boss bullet")
             {
                 spawner.GetComponent <BossAI>().regenHealth(healthRegen);
                 GameObject temp2;
                 temp2 = Instantiate(particles, transform.position, transform.rotation) as GameObject;
                 Destroy(temp2, 3.0f);
             }
         }
         counter--;
         //Destroy(this.gameObject);
     }
 }
コード例 #5
0
 public CommandDealDamage(Idamageable obj, AttackSchema attackSchema)
 {
     this._obj     = obj;
     _attackSchema = attackSchema;
 }
コード例 #6
0
 private void HandleDamage(Idamageable obj)
 {
     GameManager.Instance.Commander.Execute <CommandDealDamage>(new object[] { obj, damageAmount });
 }