too many if statements

This commit is contained in:
reisenlol 2026-01-12 23:44:43 -08:00
parent 533f137c48
commit 17b1a1e367
No known key found for this signature in database
7 changed files with 55 additions and 20 deletions

View file

@ -11,15 +11,20 @@ public class Entity : MonoBehaviour
[Header("Movement")]
public int maxMovement;
public TileObject currentTile;
public float moveAnimSpeed;
[SerializeField] private float moveAnimSpeed;
[Header("Flags")]
public bool canMove = true;
public bool invincible;
[Header("Animation")]
[SerializeField] private SpriteRenderer[] spriteRenderers;
[SerializeField] private float damageColorChangeSpeed;
public virtual void TakeDamage(float damage)
{
health -= damage;
StartCoroutine(DamageAnimation());
if (health <= 0)
{
OnKillEffects();
@ -61,4 +66,20 @@ public class Entity : MonoBehaviour
}
FinishedMovement();
}
private IEnumerator DamageAnimation()
{
float currentState = 0;
while (currentState < 1)
{
currentState += Time.deltaTime * damageColorChangeSpeed;
foreach (SpriteRenderer spritepart in spriteRenderers)
{
if (spritepart)
{
spritepart.color = Color.Lerp(Color.gray, Color.white, currentState);
}
}
yield return null;
}
}
}