private void SpawnBoxymon(BoxymonType boxymonType) { Boxymon instance = m_EnemyPool.Rent(true).GetComponent <Boxymon>(); instance.transform.position = transform.position; instance.Init(boxymonType, m_MapData, true); instance.OnBoxymonDeath += BoxymonDied; m_AliveBoxymons.Add(instance); }
public void StackEffect(GameObject target) { Boxymon boxymon = target.GetComponent <Boxymon>(); if (boxymon != null) { m_OriginalSpeed = boxymon.MoveSpeed; } }
public void OnTriggerEnter(Collider other) { Boxymon boxymon = other.GetComponent <Boxymon>(); if (boxymon && !m_BoxymonsInRange.Contains(boxymon)) { m_BoxymonsInRange.Add(boxymon); boxymon.OnBoxymonDeath += BoxymonDied; } }
private void BoxymonDied(Boxymon boxymon) { m_BoxymonsInRange.Remove(boxymon); boxymon.OnBoxymonDeath -= BoxymonDied; if (m_BoxymonsInRange.Count <= 0) { m_ClosestBoxymon = null; } }
public void ApplyEffect(GameObject target) { Boxymon boxymon = target.GetComponent <Boxymon>(); if (boxymon != null) { m_OriginalSpeed = boxymon.MoveSpeed; boxymon.MoveSpeed = m_OriginalSpeed * m_SpeedMultiplier; if (boxymon.MoveSpeed < 0.0f) { boxymon.MoveSpeed = 0.0f; } } }
public void OnTriggerExit(Collider other) { Boxymon boxymon = other.GetComponent <Boxymon>(); if (boxymon && m_BoxymonsInRange.Contains(boxymon)) { m_BoxymonsInRange.Remove(boxymon); if (m_BoxymonsInRange.Count <= 0) { m_ClosestBoxymon = null; } boxymon.OnBoxymonDeath -= BoxymonDied; } }
private void AoEHit(Vector3 impactPoint) { int collidersInsideArea = Physics.OverlapSphereNonAlloc(impactPoint, m_CurrentScriptableBullet.ExplosionRange, m_ExplosionHits); if (collidersInsideArea > 0) { foreach (Collider collider in m_ExplosionHits) { if (collider != null) { if (collider.CompareTag(m_EnemyTag)) { Boxymon boxymon = collider.GetComponent <Boxymon>(); BulletHit(boxymon); } } } } }
public void OnTriggerEnter(Collider other) { if (other.CompareTag(m_TowerTag)) { return; } if (other.CompareTag(m_EnemyTag)) { Boxymon boxymon = other.GetComponent <Boxymon>(); if (boxymon.gameObject.activeSelf && m_CurrentScriptableBullet != null) { OnHit(other.transform.position, boxymon); return; } } OnHit(other.transform.position); }
private void OnHit(Vector3 impactPoint, Boxymon boxymon = null) { if (m_CurrentScriptableBullet.TriggerHitOnDisable) { AoEHit(impactPoint); } else { BulletHit(boxymon); } if (m_CurrentScriptableBullet.OnHitParticleEffect != null) { GameObject particleEffect = m_CurrentScriptableBullet.OnHitParticleEffect.Rent(true); particleEffect.transform.position = impactPoint; particleEffect.SetActive(true); } gameObject.SetActive(false); }
private void BoxymonDied(Boxymon boxymon) { m_AliveBoxymons.Remove(boxymon); boxymon.OnBoxymonDeath -= BoxymonDied; }
private void BulletHit(Boxymon boxymon) { boxymon?.TakeDamage(m_CurrentScriptableBullet.Damage, m_Effects); }