feat: Enemies
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user