using UnityEngine; using UnityEngine.Events; public class SpawnObjectOnDealDamage : DealtDamageEffect { public UnityEvent triggerEvent; public float damageNeeded = 25f; public float cd = 0.2f; private float time; private float damageDealt; private SpawnObjectEffect spawn; private DamageEffect dmgEffect; public bool allowSelfDmg; private void Start() { spawn = GetComponent(); dmgEffect = GetComponent(); } public override void DealtDamage(Vector2 damage, bool selfDamage, Player damagedPlayer = null) { if (selfDamage && !allowSelfDmg) { return; } damageDealt += damage.magnitude; if (damageDealt > damageNeeded && Time.time > time + cd) { time = Time.time; damageDealt = 0f; if ((bool)spawn) { spawn.DoEffect(damage); } if ((bool)dmgEffect) { dmgEffect.DoDamageEffect(damage, selfDamage, damagedPlayer); } triggerEvent.Invoke(); } } }