Files
FORT-BO/Assets/CONTENT/FEATURES/MapRadar/TargetConfig.cs

36 lines
1.3 KiB
C#

using UnityEngine;
[CreateAssetMenu(fileName = "TargetConfig", menuName = "Map Radar/Target Config")]
public sealed class TargetConfig : ScriptableObject
{
[Header("Target Prefab")]
[SerializeField] private MapTarget targetPrefab = null;
[Header("Target Stats")]
[SerializeField, Min(0f)] private float timeBeforeAttack = 5f;
[SerializeField, Min(1)] private int health = 100;
[SerializeField, Min(1)] private int baseDamage = 1;
[SerializeField] private MissileType requiredMissileType = MissileType.Standard;
[Header("Air Target Movement")]
[SerializeField, Min(0f)] private float movementSpeed = 1f;
[SerializeField, Min(0f)] private float stoppingDistance = 0.25f;
public MapTarget TargetPrefab => targetPrefab;
public float TimeBeforeAttack => timeBeforeAttack;
public int Health => health;
public int BaseDamage => baseDamage;
public MissileType RequiredMissileType => requiredMissileType;
public float MovementSpeed => movementSpeed;
public float StoppingDistance => stoppingDistance;
private void OnValidate()
{
timeBeforeAttack = Mathf.Max(0f, timeBeforeAttack);
health = Mathf.Max(1, health);
baseDamage = Mathf.Max(1, baseDamage);
movementSpeed = Mathf.Max(0f, movementSpeed);
stoppingDistance = Mathf.Max(0f, stoppingDistance);
}
}