Add new components: CanPickUpComponent, CollapsableComponent, DestroyableComponent, EffectInflictorComponent, StatusEffectComponent, and StatusEffectDataResource
This commit is contained in:
27
scripts/components/EffectInflictorComponent.cs
Normal file
27
scripts/components/EffectInflictorComponent.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using Godot;
|
||||
using Mr.BrickAdventures.scripts.Resources;
|
||||
|
||||
namespace Mr.BrickAdventures.scripts.components;
|
||||
|
||||
public partial class EffectInflictorComponent : Node
|
||||
{
|
||||
[Export] public DamageComponent Damage { get; set; }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
if (Damage == null)
|
||||
{
|
||||
GD.PushError("EffectInflictorComponent requires a DamageComponent to be set.");
|
||||
return;
|
||||
}
|
||||
|
||||
Damage.EffectInflicted += OnEffectInflicted;
|
||||
}
|
||||
|
||||
private void OnEffectInflicted(Node2D target, StatusEffectDataResource effect)
|
||||
{
|
||||
var statusEffect = target.GetNodeOrNull<StatusEffectComponent>("StatusEffectComponent");
|
||||
|
||||
statusEffect?.ApplyEffect(effect);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user