27 lines
626 B
C#
27 lines
626 B
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
public class ProcessHitComponent : MonoBehaviour
|
|
{
|
|
private HashSet<GameObject> ignored = new HashSet<GameObject>();
|
|
|
|
public UnityEvent<int> onTakeDamage;
|
|
|
|
public void Process(OnHitEvent.Args args)
|
|
{
|
|
var source = args.source;
|
|
|
|
if (ignored.Contains(source)) return;
|
|
|
|
var damage = args.damage.value;
|
|
var multiplier = args.hitMultiplier;
|
|
var finalDamage = damage * multiplier;
|
|
|
|
onTakeDamage.Invoke((int)finalDamage);
|
|
|
|
ignored.Add(args.source);
|
|
}
|
|
}
|