canto/Assets/Scripts/Entity/DamageSource.cs
2025-08-14 19:11:32 -04:00

43 lines
1,009 B
C#

using UnityEngine;
namespace KitsuneCafe.Entity
{
public class DamageSource : MonoBehaviour, IDamaging
{
[SerializeField]
private int damage;
public void ApplyDamage(Collider target)
{
ApplyDamage(damage, target);
}
public void ApplyDamage(GameObject target)
{
ApplyDamage(damage, target);
}
public void ApplyDamage(IDamageable target)
{
ApplyDamage(damage, target);
}
public void ApplyDamage(int amount, IDamageable target)
{
target.ReceiveDamage(this, amount);
}
public void ApplyDamage(int amount, Collider target)
{
ApplyDamage(amount, target.gameObject);
}
public void ApplyDamage(int amount, GameObject target)
{
if (target.TryGetComponent(out IDamageable damageable))
{
ApplyDamage(amount, damageable);
}
}
}
}