public void Contact(Collider other) { if (hit || other.CompareTag("Player")) { return; } hit = true; EnemyPart enemyPart = other.GetComponent <EnemyPart>(); if (enemyPart) { enemyPart.HitPart(this); } if (_meshRenderer) { _meshRenderer.enabled = false; } if (_trailRenderer) { _trailRenderer.enabled = false; } GetComponent <Collider>().enabled = false; Destroy(gameObject, 0.5f); }
public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow) { EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>(); if (!ep._enemy.dead) { FindObjectOfType <AudioManager>().Play("brustArrow"); arrow.transform.SetParent(ep.transform); communAction(arrow); Destroy(arrow.gameObject, 8); } }
public VoidBoss(BossPrototype proto) : base(proto) { Body.mAABB.Offset += (Vector3)proto.bodyOffset; HurtBox.mAABB.Offset += (Vector3)proto.bodyOffset; Body.mIsKinematic = true; abilityFlags.SetFlag(AbilityFlag.Heavy, true); leftHand = new EnemyPart(Resources.Load("Prototypes/Entity/Enemies/VoidBossLeftHand") as EnemyPrototype, this); leftHand.offset = new Vector2(175, -95); rightHand = new EnemyPart(Resources.Load("Prototypes/Entity/Enemies/VoidBossRightHand") as EnemyPrototype, this); rightHand.offset = new Vector2(-175, -95); }
// Use this for initialization void Start() { _enemyPart = GetComponentInParent <EnemyPart>(); if (_enemyPart && goldenPointFX && goldenPointHitFX) { bool goldenShot; goldenShot = (Random.Range(1, 101) <= 5); if (goldenShot) { gp = Instantiate(goldenPointFX, transform); gp.transform.localPosition = Vector3.zero; _enemyPart._goldenPoint = this; } } }
public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow) { EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>(); if (!ep._enemy.dead) { FindObjectOfType <AudioManager>().Play("basicArrow"); communAction(arrow); ep.hit(damage, GameController.arrowsType.basic); arrow.transform.SetParent(ep.transform); if (ArrowDamage) { Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity); } Destroy(arrow.gameObject, 8); } }
public void EnemyCollision(RaycastHit2D hit, ArrowMoviment arrow) { EnemyPart ep = hit.collider.gameObject.GetComponent <EnemyPart>(); if (!ep._enemy.dead) { if (ArrowDamage) { Instantiate(ArrowDamage, hit.collider.transform.position, Quaternion.identity); } if (!partsHited.Contains(ep)) { FindObjectOfType <AudioManager>().Play("piercingArrow"); partsHited.Add(ep); ep.hit(damage, GameController.arrowsType.piercing); } } }
void OnCollisionEnter(Collision col) { if (reachTarget) { return; } CatchSomething(); EnemyPart enemyPart = col.transform.gameObject.GetComponent <EnemyPart>(); if (enemyPart != null) { transform.SetParent(col.transform); OnReachedEnemy(enemyPart.GetComponentInParent <Enemy> ()); } Bomb bomb = col.transform.gameObject.GetComponent <Bomb>(); if (bomb != null) { bomb.Explote(); Reset(); } }
void communAction(ArrowMoviment arrow) { Instantiate(explosionParticle, transform.position, Quaternion.identity); RaycastHit2D[] callisions = Physics2D.CircleCastAll(transform.position, explosionRadio, new Vector2(1, 1), 0, arrow.targetLayerMask); for (int i = 0; i < callisions.Length; i++) { GameObject go = callisions[i].collider.gameObject; if (go.tag == "Enemy") { EnemyPart ep = callisions[i].collider.gameObject.GetComponent <EnemyPart>(); if (!enemiesHited.Contains(ep._enemy)) { enemiesHited.Add(ep._enemy); ep.hit(damage, GameController.arrowsType.brust); } } else if (go.tag == "Item") { go.GetComponent <IItem>().Action(); Destroy(go, 0.5f); } else if (go.tag == "Projetil") { go.GetComponent <Projetil>().damage(damage); } } arrow.collisionOccurred = true; arrow.arrowHead.SetActive(false); arrow._rBody.velocity = Vector3.zero; arrow._rBody.isKinematic = true; arrow._rBody.constraints = RigidbodyConstraints.FreezeAll; }