token manager for projectile
This commit is contained in:
@@ -15,6 +15,7 @@ using Gamesmiths.Forge.Tags;
|
||||
using Godot;
|
||||
using Movementtests.forge.abilities;
|
||||
using Movementtests.interfaces;
|
||||
using Movementtests.managers;
|
||||
using Movementtests.scenes.components.knockback;
|
||||
using Movementtests.systems;
|
||||
using Movementtests.tools;
|
||||
@@ -38,6 +39,8 @@ public partial class Enemy : CharacterBody3D,
|
||||
public TagsManager TagsManager => this.DependOn<TagsManager>();
|
||||
[Dependency]
|
||||
public CuesManager CuesManager => this.DependOn<CuesManager>();
|
||||
[Dependency]
|
||||
public TokenManager TokenManager => this.DependOn<TokenManager>();
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -140,13 +143,16 @@ public partial class Enemy : CharacterBody3D,
|
||||
private void ProjectileTokenRequested(EventData obj)
|
||||
{
|
||||
if (IsStunned()) return;
|
||||
// TODO: replace with token manager
|
||||
|
||||
var token = TokenManager.RequestToken(this);
|
||||
if (token == null) return;
|
||||
|
||||
Events.Raise(new EventData<OnProjectileSpawned>
|
||||
{
|
||||
EventTags = Tag.RequestTag(TagsManager, "events.enemy.launch_projectile").GetSingleTagContainer()!,
|
||||
Source = this,
|
||||
Target = Target as IForgeEntity,
|
||||
Payload = new OnProjectileSpawned(Vector3.Up, 20, Vector3.Up)
|
||||
Payload = new OnProjectileSpawned(Vector3.Up, 20, Vector3.Up, Token: token)
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user