Files
2023-06-11 00:35:07 +03:00

44 lines
1.1 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerDamage : MonoBehaviour {
[SerializeField] private int damage;
[SerializeField] private bool isDestroyingAfterCollision;
private IObjectDestroyer destroyer;
private GameObject parent;
public int Damage {
get => damage;
set => damage = value;
}
public GameObject Parent {
get => parent;
set => parent = value;
}
public void Init(IObjectDestroyer destroyer) {
this.destroyer = destroyer;
}
private void OnTriggerEnter2D(Collider2D other) {
if (other.gameObject == parent) {
return;
}
if (GameManager.Instance.healthContainer.ContainsKey(other.gameObject)) {
var health = GameManager.Instance.healthContainer[other.gameObject];
health.TakeHit(damage);
}
if (isDestroyingAfterCollision) {
if (destroyer == null) {
Destroy(gameObject);
} else {
destroyer.Destroy(gameObject);
}
}
}
}