void OnCollisionEnter(Collision col) { BaseShip bs = col.gameObject.GetComponent <BaseShip> (); Destroyable ds = col.gameObject.GetComponent <Destroyable> (); if (bs == whoFiredMe) { return; } if (bs != null) { if (col.collider.CompareTag("Turret")) { TurretAI ta = col.collider.GetComponent <TurretAI> (); if (ta != null) { ta.Damage(damage, whoFiredMe); } } else if (col.collider.CompareTag("Weak")) { bs.Damage(damage * 2, whoFiredMe); } else { bs.Damage(damage, whoFiredMe); } } else if (ds != null) { ds.Damage(damage); } }
void OnCollisionEnter2D(Collision2D collision) { //If this object touches another object with Destroyable component attached it keeps applying damage until the 2 are no longer touching Destroyable destroyable = collision.gameObject.GetComponent <Destroyable>(); if (destroyable) { destroyable.Damage(_damage); } }
void OnTriggerEnter(Collider col) { PlayerBullet bul = col.GetComponent <PlayerBullet>(); if (bul) { stat.Damage(bul.power); Destroy(col.gameObject); } }
void OnCollisionEnter2D(Collision2D collision) { Destroyable destroyable = collision.gameObject.GetComponent <Destroyable>(); //If the bullet collides with something that can be destroyed... then call Damage on that script and destroy this bullet if (destroyable) { destroyable.Damage(_damage); Destroy(gameObject); } }
private void DoDamage(Destroyable other) { if (attackWait) { return; } attackWait = true; damageTimer = 0; other.Damage(damage); }
public void OnEnter(Collider2D collision) { Destroyable destroyable = collision.GetComponent <Destroyable>(); if (destroyable == null) { return; //Object can not take damage, so return. } int damage = Tools.GetDamage(damageSource, stats); destroyable.Damage(damage, parent, damageSource); }
IEnumerator AttackCoroutine() { while (inCombat) { if (target == null) { startedAttack = false; inCombat = false; break; } Debug.Log("boop"); target.Damage(dmg, gameObject); yield return(new WaitForSeconds(attackSpeed)); } }
private void FollowAndAttack() { if (enemyReference != null) { if (Vector3.Distance(transform.position, enemyReference.position) >= MinDist) { agent.destination = enemyReference.position; transform.LookAt(enemyReference); } else { agent.destination = transform.localPosition; EnemyController enemy = enemyReference.GetComponent <EnemyController>(); deltaTime += Time.deltaTime; if (deltaTime >= 1) { animator.SetTrigger("Attack"); enemy.Damage(damage); deltaTime = 0; } } } else if (destroyableReference != null) { if (Vector3.Distance(transform.position, destroyableReference.position) >= destroyabledistance) { agent.destination = destroyableReference.position; transform.LookAt(destroyableReference); } else { agent.destination = transform.localPosition; Destroyable destroyable = destroyableReference.GetComponent <Destroyable>(); deltaTime += Time.deltaTime; if (deltaTime >= 1) { animator.SetTrigger("Attack"); destroyable.Damage(damage); deltaTime = 0; } } } }
protected override void OnCantMove <T>(T component) { switch (attack) { case Attack.AttL: animator.SetTrigger("AttL"); break; case Attack.AttB: animator.SetTrigger("AttB"); break; case Attack.AttR: animator.SetTrigger("AttR"); break; case Attack.AttU: animator.SetTrigger("AttU"); break; default: break; } if (component is Enemy) { Enemy hitEnemy = component as Enemy; hitEnemy.DamageEnemy(damage, onRight, gameObject); } else if (component is Destroyable) { Destroyable hitEnemy = component as Destroyable; hitEnemy.Damage(1); } else if (component is Boss) { Boss hitEnemy = component as Boss; hitEnemy.TakeHit(damage, gameObject); } }
public override void Fire1() { if (canFireP) { laserTimer = 0; int layermask = 1 << 8; layermask = ~layermask; if (Physics.Raycast(transform.position, transform.forward, out hit, primaryRange, layermask)) { BaseShip hitShip = hit.collider.gameObject.GetComponent <BaseShip> (); Destroyable hitObstacle = hit.collider.gameObject.GetComponent <Destroyable> (); if (hitShip != null) { hitShip.Damage(damage, GetComponentInParent <BaseShip> ()); } else if (hitObstacle != null) { hitObstacle.Damage(damage); } } primaryTimer = 0; } }
private void Update() { if (IsFiring) { //int layerMask = 1 << (LayerMask.NameToLayer("Airplane") | LayerMask.NameToLayer("Enemy")); RaycastHit hit; if ((Time.time - lastTime) > DamageDelay && Physics.Raycast(FirePoint.position, FirePoint.TransformDirection(Vector3.forward), out hit, MaxDistance))//, layerMask)) { Destroyable foe = hit.transform.GetComponent <Destroyable>(); if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Enemy")) { foe = hit.transform.parent.GetComponent <Destroyable>(); } if (foe) { foe.Damage(AttackPower); lastTime = Time.time; } } transform.Rotate(Vector3.forward, RotationSpeed * Time.deltaTime); } }