Signal context

This commit is contained in:
Rendo 2025-07-22 19:24:34 +05:00
commit b4bf3ab8bc
13 changed files with 112 additions and 72 deletions

View file

@ -29,10 +29,10 @@ public partial class NerdusReturnAttack : Area2D
entities.Remove(entity);
}
}
private void OnHPChanged(float delta, Node source)
private void OnHPChanged(EntitySignalContext context)
{
if (delta >= 0) return;
returnAmount -= delta;
if (context.deltaHP >= 0) return;
returnAmount -= context.deltaHP;
triggered = true;
}
public void ReturnAllDamage()

View file

@ -9,10 +9,10 @@ public partial class ReturnEffect : Node
[Export]
private Effect _effectToReturn;
public void OnDamageRecieved(int delta,Node origin)
public void OnDamageRecieved(EntitySignalContext context)
{
if (delta >= 0) return;
if (origin is RuntimeZombieData zombie)
if (context.deltaHP >= 0) return;
if (context.source is RuntimeZombieData zombie)
{
zombie.GiveEffect(_effectToReturn);
}

View file

@ -5,18 +5,11 @@ namespace Newlon.Components.Plants.Behaviours;
public partial class HpBasedBehaviour : BaseBehaviour
{
private RuntimePlantData _data;
[Export] private Array<string> parameters;
public override void _Ready()
public void OnHPChanged(EntitySignalContext context)
{
base._Ready();
_data = GetParent<RuntimePlantData>();
}
public void OnHPChanged(float amount, Node origin)
{
var calc = _data.HP / _data.MaxHP;
var calc = context.target.HP / context.target.MaxHP;
foreach (var par in parameters)
{
_tree.Set(par, calc);