From d1c0a4fa4f8781b98c228a70943f0f9431559f80 Mon Sep 17 00:00:00 2001 From: Stedd Date: Sun, 8 Oct 2023 16:20:50 +0200 Subject: [PATCH] Targeting working again --- ScriptableObjects/SoTargetableRuntimeSet.cs | 2 +- Scripts/Damageable.cs | 13 +++++++++++++ Scripts/Targetable.cs | 16 ++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/ScriptableObjects/SoTargetableRuntimeSet.cs b/ScriptableObjects/SoTargetableRuntimeSet.cs index 37ec13c..9e0d5aa 100644 --- a/ScriptableObjects/SoTargetableRuntimeSet.cs +++ b/ScriptableObjects/SoTargetableRuntimeSet.cs @@ -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 { } diff --git a/Scripts/Damageable.cs b/Scripts/Damageable.cs index a43a1a3..01b754e 100644 --- a/Scripts/Damageable.cs +++ b/Scripts/Damageable.cs @@ -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) diff --git a/Scripts/Targetable.cs b/Scripts/Targetable.cs index d7ef5de..bbd8b89 100644 --- a/Scripts/Targetable.cs +++ b/Scripts/Targetable.cs @@ -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;