void CreateParatileAtPoint(IDamaggable unit) { Transform unitHit = unit.DamaggableTransform; GameObject go = Instantiate(particle, unitHit.position, Quaternion.identity); Destroy(go, particleLifetime); }
public void TakeDamage(IDamaggable unit, float dmg) { //TODO slow down time when we are hit //Debug.Log(this.name + " is hit " + CurrentHealth); unit.CurrentHealth -= dmg; GameEvents.OnPlayerHit(unit); if (CurrentHealth <= 0) { GameEvents.OnPlayerDied(); GameEvents.OnPlayerRespawn(); } }
public void TakeDamage(IDamaggable unit, float dmg) { //? should i make a different player health script so we dont have to do so many checks in other code //TODO slow down time when we are hit //Debug.Log(this.name + " is hit " + CurrentHealth); unit.CurrentHealth -= dmg; GameEvents.OnGooseHit(unit); if (CurrentHealth <= 0) { GameEvents.OnGooseDied(this); } }
IEnumerator Flash(IDamaggable unit) { Renderer[] renderers = unit.DamaggableTransform.GetComponentsInChildren <Renderer>(); foreach (Renderer r in renderers) { r.material.color = HitColor; } original = unit.DamaggableTransform.GetComponent <FlashOnHit>().original; yield return(new WaitForSeconds(flashTime)); foreach (Renderer r in renderers) { if (r != null) { r.material.color = original; } } }
void StartFlash(IDamaggable unit) { StartCoroutine(Flash(unit)); }