feat: Enemies

This commit is contained in:
2026-11-05 08:59:08 +01:00
parent cd65f702ae
commit 743703c6bd
109 changed files with 75286 additions and 15238 deletions

View File

@@ -28,6 +28,9 @@ namespace Arena.Combat
public DamageType DamageType;
[Tooltip("Team hurt by the zone: Allied for an enemy attack, Enemy for a player attack, All for everyone.")]
public Team Target = Team.All;
[Tooltip("Damage multiplier by distance to the center. 0: center, 1: edge of the sphere.")]
public AnimationCurve Falloff = AnimationCurve.Linear(0f, 1f, 1f, 0f);
@@ -133,7 +136,7 @@ namespace Arena.Combat
{
target = other.GetComponentInParent<IDamageable>();
if (target == null)
if (target == null || !CanHit(target))
return false;
// The owner never hurts itself
@@ -150,7 +153,12 @@ namespace Arena.Combat
return;
GameObject source = _references.Owner ? _references.Owner : gameObject;
target.TakeDamage(new DamageInfo(amount, _settings.DamageType, source));
target.TakeDamage(new DamageInfo(amount, _settings.DamageType, source, _settings.Target));
}
private bool CanHit(IDamageable target)
{
return DamageInfo.CanHit(_settings.Target, target.Team);
}
private Vector3 GetCenter()