using System.Collections.Generic; using UnityEngine; using UnityEngine.Assertions; using UnityAtoms.BaseAtoms; using UnityAtoms.Tags; namespace UnityAtoms.Examples { /// /// Script to decrease a Unit's health. /// public class DecreaseHealth : MonoBehaviour { public List TagsAffected { get => _tags; } [SerializeField] private IntReference _decreaseBy; [SerializeField] private List _tags; [SerializeField] private VoidBaseEventReference _didCollide; void Start() { Assert.IsNotNull(_decreaseBy); Assert.IsNotNull(_tags); } public void Do(Collider2D collider) { if (collider == null) return; if (collider.gameObject.HasAnyTag(_tags)) { collider.GetComponent().Health -= _decreaseBy; } if (_didCollide != null && _didCollide.Event != null) { _didCollide.Event.Raise(); } } } }