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 namespace GameDev.CoreSystems
{ {
[CreateAssetMenu(fileName = "newDamageableRuntimeSet", menuName = "RuntimeSet/Damageable")] [CreateAssetMenu(fileName = "newTargetableRuntimeSet", menuName = "RuntimeSet/Targetable")]
public class SoTargetableRuntimeSet : SRuntimeSet<Targetable> public class SoTargetableRuntimeSet : SRuntimeSet<Targetable>
{ {
} }

View File

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

View File

@ -4,10 +4,26 @@ namespace GameDev.CoreSystems
{ {
public class Targetable : MonoBehaviour, ITargetable public class Targetable : MonoBehaviour, ITargetable
{ {
[Header("RuntimeSet")]
[SerializeField] private SoTargetableRuntimeSet _activeTargetableRuntimeSet;
[field: Header("Connections")]
[field: SerializeField] public Damageable Damageable { get; set; }
[Header("TargetPositions")] [Header("TargetPositions")]
[SerializeField] private Transform _centerPosition; [SerializeField] private Transform _centerPosition;
[SerializeField] private Transform _basePosition; [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 GetCenterPosition() => _centerPosition.transform.position;
public Vector3 GetBasePosition() => _basePosition.transform.position; public Vector3 GetBasePosition() => _basePosition.transform.position;