basic projectiles
This commit is contained in:
@@ -116,8 +116,6 @@ public partial class Enemy : CharacterBody3D,
|
||||
CMovement.RMovement = RMovement;
|
||||
CKnockback = GetNode<Node>("CKnockback") as IKnockbackable ?? throw new Exception("Knockback component not found");
|
||||
CKnockback.RKnockback = RKnockback;
|
||||
|
||||
// _hitAbilityHandle = Abilities.GrantAbilityPermanently(HitAbility.GetAbilityData(), 1, LevelComparison.None, this);
|
||||
}
|
||||
|
||||
public void OnResolved()
|
||||
@@ -126,20 +124,25 @@ public partial class Enemy : CharacterBody3D,
|
||||
HealthBarWrapper.ResourceBar.Init(healthAttribute);
|
||||
healthAttribute.OnValueChanged += OnHealthChanged;
|
||||
|
||||
Events.Subscribe(Tag.RequestTag(TagsManager, "events.combat.hit"),
|
||||
data => {GD.Print("Hit!");});
|
||||
// Events.Subscribe(Tag.RequestTag(TagsManager, "events.combat.hit"), data => {GD.Print("Hit!");});
|
||||
Events.Subscribe<DamageDone>(Tag.RequestTag(TagsManager, "events.combat.damage"), OnDamageReceived);
|
||||
Events.Subscribe<KnockbackDone>(Tag.RequestTag(TagsManager, "events.combat.knockback_received"), OnKnockbackReceived);
|
||||
Events.Subscribe(Tag.RequestTag(TagsManager, "events.combat.death"), OnDeath);
|
||||
Events.Subscribe(Tag.RequestTag(TagsManager, "events.enemy.request_projectile"), ProjectileTokenRequested);
|
||||
|
||||
GetTree().CreateTimer(3).Timeout += () => Events.Raise(new EventData
|
||||
}
|
||||
|
||||
private void ProjectileTokenRequested(EventData obj)
|
||||
{
|
||||
// TODO: replace with token manager
|
||||
Events.Raise(new EventData
|
||||
{
|
||||
EventTags = Tag.RequestTag(TagsManager, "events.enemy.launch_projectile").GetSingleTagContainer()!,
|
||||
Source = this,
|
||||
Target = Target as IForgeEntity
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public void OnKnockbackReceived(EventData<KnockbackDone> data)
|
||||
{
|
||||
RegisterKnockback(new KnockbackRecord(data.Payload.knockbackDirection, data.EventMagnitude));
|
||||
|
||||
Reference in New Issue
Block a user