Implement health modification on enemy kill; add HealOnKillModifier and update death behavior

This commit is contained in:
2025-07-12 12:57:21 +02:00
parent cb793bcc93
commit c3b1ac9213
22 changed files with 330 additions and 11 deletions

View File

@@ -1,3 +1,4 @@
using System;
using Interfaces;
using Sirenix.Serialization;
using UnityEngine;
@@ -6,13 +7,18 @@ namespace Systems
{
public class EnemyDeathBehavior : MonoBehaviour, IDeathBehavior
{
public static event Action<GameObject, GameObject> OnAnyEnemyKilled;
[OdinSerialize, SerializeField] private int expReward = 5;
[OdinSerialize, SerializeField] private int coinReward = 1;
public void Die()
public void Die(GameObject killer = null)
{
GameManager.Instance.Player.attributes.ModifyExperience(expReward);
GameManager.Instance.AddCoins(coinReward);
OnAnyEnemyKilled?.Invoke(killer ?? GameManager.Instance.Player.gameObject, gameObject);
Destroy(gameObject);
// later let's add particle effects, sound effects, etc.