Targeting working again

This commit is contained in:
Stedd 2023-10-08 16:20:50 +02:00
parent c473d58817
commit d1c0a4fa4f
3 changed files with 30 additions and 1 deletions

View File

@ -2,7 +2,7 @@ using UnityEngine;
namespace GameDev.CoreSystems
{
[CreateAssetMenu(fileName = "newDamageableRuntimeSet", menuName = "RuntimeSet/Damageable")]
[CreateAssetMenu(fileName = "newTargetableRuntimeSet", menuName = "RuntimeSet/Targetable")]
public class SoTargetableRuntimeSet : SRuntimeSet<Targetable>
{
}

View File

@ -4,6 +4,9 @@ namespace GameDev.CoreSystems
{
public class Damageable : MonoBehaviour, IDamageable
{
[Header("RuntimeSet")]
[SerializeField] private SoDamageableRuntimeSet _activeDamageableRuntimeSet;
[field: Header("Health")]
[field: SerializeField] public int CurrentHealth { get; private set; }
[field: SerializeField] public int MaxHealth { get; private set; }
@ -11,6 +14,16 @@ namespace GameDev.CoreSystems
[field: Header("Modifiers")]
[field: SerializeField] public bool IsInvulnerable { get; private set; }
private void OnEnable()
{
_activeDamageableRuntimeSet._list.Add(this);
}
private void OnDisable()
{
_activeDamageableRuntimeSet._list.Remove(this);
}
#region Methods
public void ModifyHealth(int healthChange)

View File

@ -4,10 +4,26 @@ namespace GameDev.CoreSystems
{
public class Targetable : MonoBehaviour, ITargetable
{
[Header("RuntimeSet")]
[SerializeField] private SoTargetableRuntimeSet _activeTargetableRuntimeSet;
[field: Header("Connections")]
[field: SerializeField] public Damageable Damageable { get; set; }
[Header("TargetPositions")]
[SerializeField] private Transform _centerPosition;
[SerializeField] private Transform _basePosition;
private void OnEnable()
{
_activeTargetableRuntimeSet._list.Add(this);
}
private void OnDisable()
{
_activeTargetableRuntimeSet._list.Remove(this);
}
public Vector3 GetCenterPosition() => _centerPosition.transform.position;
public Vector3 GetBasePosition() => _basePosition.transform.position;