jimmy tremblay-Bernier c1bf5a4ca1 initial commit
2022-03-12 22:04:30 -04:00

39 lines
1.3 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DamageableObject : MonoBehaviour
{
public GameObject fxExplosion;
public void Damage(bool arrowOnFire, GameObject arrow)
{
if (arrowOnFire)
{
MeshRenderer meshRenderer = GetComponent<MeshRenderer>();
meshRenderer.material.color = Color.red;
StartCoroutine(ExplodeBarrel(1.0f, arrow));
}
}
private IEnumerator ExplodeBarrel(float waitTime, GameObject arrow)
{
yield return new WaitForSeconds(waitTime);
GameObject explosion = Instantiate(fxExplosion, gameObject.transform);
GetComponent<AudioSource>().Play();
explosion.transform.localPosition = Vector3.zero;
Enemy[] enemies = FindObjectsOfType(typeof(Enemy)) as Enemy[];
foreach (Enemy enemy in enemies)
{
if (Vector3.Distance(enemy.transform.position, transform.position) < 4.0f)
enemy.Kill(true, false);
else if(Vector3.Distance(enemy.transform.position, transform.position) >= 4.0f && Vector3.Distance(enemy.transform.position, transform.position) < 6.0f)
enemy.TakeDamage(1, true, false);
}
GetComponent<MeshRenderer>().enabled = false;
Destroy(arrow);
Destroy(gameObject, 4f);
}
}