summaryrefslogtreecommitdiff
path: root/GameCode/SpawnObjectOnDealDamage.cs
blob: be5b365ece1c41831d0334e26980a47473b28e9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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<SpawnObjectEffect>();
		dmgEffect = GetComponent<DamageEffect>();
	}

	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();
		}
	}
}