Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UniRx;
- public class Damager : MonoBehaviour
- {
- [SerializeField] private int _damage = 30;
- public int Damage
- {
- set => _damage = value;
- }
- public GameObject Owner { get; set; }
- public Subject<Health> OnGiveDamage = new Subject<Health>();
- public Subject<Health> OnFinalDamage = new Subject<Health>();
- private void OnTriggerEnter2D(Collider2D collision)
- {
- if (collision.TryGetComponent<Health>(out var health))
- {
- if (health.Owner.Equals(Owner)) return;
- OnGiveDamage.OnNext(health);
- var disposable = health.OnEmpty.Subscribe(OnFinalDamage);
- health.TakeDamage(_damage, gameObject);
- disposable.Dispose();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment