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