Damage source and effect fix
This commit is contained in:
parent
7aa0aa5bad
commit
c89d93cf24
15 changed files with 52 additions and 34 deletions
|
|
@ -12,7 +12,7 @@ public partial class AreaAttack : Area2D
|
|||
foreach (var zombie in GetOverlappingAreas())
|
||||
{
|
||||
var zombieData = zombie.GetParent<RuntimeZombieData>();
|
||||
zombieData?.TakeDamage(_damage);
|
||||
zombieData?.TakeDamage(_damage,GetParent());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public partial class ExplosionComponent : Area2D
|
|||
foreach(var zombie in GetOverlappingAreas())
|
||||
{
|
||||
var zombieData = zombie.GetParent<RuntimeZombieData>();
|
||||
zombieData?.TakeDamage(damage);
|
||||
zombieData?.TakeDamage(damage,GetParent());
|
||||
}
|
||||
|
||||
GetParent<RuntimePlantData>().Kill();
|
||||
|
|
|
|||
|
|
@ -18,18 +18,18 @@ public partial class RuntimePlantData : Node2D, IEntity
|
|||
public PlantResource Resource;
|
||||
|
||||
[Signal]
|
||||
public delegate void OnHPChangedEventHandler(int amount);
|
||||
public delegate void OnHPChangedEventHandler(int amount,Node origin);
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_hp = _maxHP;
|
||||
}
|
||||
|
||||
public void Heal(int amount)
|
||||
public void Heal(int amount,Node origin)
|
||||
{
|
||||
_hp += amount;
|
||||
|
||||
EmitSignal(SignalName.OnHPChanged,amount);
|
||||
EmitSignal(SignalName.OnHPChanged,amount,origin);
|
||||
|
||||
if (MaxHp > 0)
|
||||
{
|
||||
|
|
@ -37,11 +37,11 @@ public partial class RuntimePlantData : Node2D, IEntity
|
|||
}
|
||||
}
|
||||
|
||||
public void TakeDamage(int amount)
|
||||
public void TakeDamage(int amount,Node origin, Utility.DamageTypes damageType = Utility.DamageTypes.PHYSICAL)
|
||||
{
|
||||
_hp -= amount;
|
||||
|
||||
EmitSignal(SignalName.OnHPChanged,-amount);
|
||||
EmitSignal(SignalName.OnHPChanged,-amount, origin);
|
||||
|
||||
if (_hp <= 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public partial class AloeBehaviour : Node
|
|||
{
|
||||
if((float)plantData.Hp / (float)plantData.MaxHp < _hpTreshold)
|
||||
{
|
||||
plantData.Heal(3000 + 25 * plantData.MaxHp);
|
||||
plantData.Heal(3000 + 25 * plantData.MaxHp,GetParent());
|
||||
_charge = false;
|
||||
_player.Play("aloe/heal");
|
||||
_player.Queue("aloe/idle_used");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue