Files
DropToTheRoots/Game/Assets/Scripts/DamageHandler.cs
T

56 lines
1.2 KiB
C#

using System;
using UnityEngine;
using Object = System.Object;
public class DamageHandler : MonoBehaviour
{
public float threshold = 2.5f;
public float multiplier = 0.5f;
public float maxHealth = 1f;
public float health;
public float minSize = 0.4f;
private void Start()
{
health = maxHealth;
}
private void OnCollisionEnter2D(Collision2D other)
{
float fallSpeed = GetComponent<Rigidbody2D>().linearVelocityY;
if (fallSpeed > threshold)
{
float fallDamage = (fallSpeed - threshold) * multiplier;
Debug.Log($"Fell with velocity:{fallSpeed}. Fall damage{fallDamage}");
UpdateHealth(health - fallDamage);
// Debug.Log($"New health:{health - fallDamage}");
}
else
{
Debug.Log($"Fell with velocity:{fallSpeed}. No fall damage");
}
}
public void UpdateHealth(float health)
{
this.health = health;
Transform transform = GetComponent<Transform>();
float healthScaling = minSize + (1 - minSize) * (this.health / maxHealth);
transform.localScale = new Vector3(healthScaling,healthScaling,healthScaling);
Debug.Log("UpdatedScale and health");
if(this.health <= 0f)
{
Debug.Log("Die");
Die();
}
}
public void Die()
{
Destroy(gameObject);
}
}