29 lines
920 B
C#
29 lines
920 B
C#
using UnityEngine;
|
|
|
|
namespace RaceFields.Damage.VehicleDamage
|
|
{
|
|
public sealed class DamageHitbox : MonoBehaviour
|
|
{
|
|
[SerializeField] private VehicleDamageController damageController;
|
|
[SerializeField] private VehicleModuleType moduleType = VehicleModuleType.Body;
|
|
[SerializeField] private float damageMultiplier = 1f;
|
|
|
|
public VehicleModuleType ModuleType => moduleType;
|
|
|
|
private void Awake()
|
|
{
|
|
if (damageController == null)
|
|
damageController = GetComponentInParent<VehicleDamageController>();
|
|
}
|
|
|
|
public void ApplyDamage(DamageHit hit)
|
|
{
|
|
if (damageController == null)
|
|
return;
|
|
|
|
DamageHit scaledHit = new DamageHit(hit.Amount * damageMultiplier, hit.Type, hit.Point, hit.Direction, hit.Source);
|
|
damageController.ApplyDamage(moduleType, scaledHit);
|
|
}
|
|
}
|
|
}
|