fixed a few issues
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 30s
Create tag and build when new code gets to main / Export (push) Successful in 6m0s

This commit is contained in:
2026-05-06 16:25:56 +02:00
parent bcc748ca6b
commit 7ba4a3db3f
22 changed files with 133 additions and 660 deletions

View File

@@ -0,0 +1,35 @@
using Gamesmiths.Forge.Abilities;
using Gamesmiths.Forge.Effects;
using Gamesmiths.Forge.Godot.Resources;
using Gamesmiths.Forge.Godot.Resources.Abilities;
using Godot;
namespace Movementtests.forge.abilities;
public class ManualCancelHitBehavior(ForgeEffectData? damage) : IAbilityBehavior
{
public void OnStarted(AbilityBehaviorContext context)
{
if (context.Target == null || damage == null) return;
var sourceLocation = (context.Source as Node3D)?.GlobalPosition ?? Vector3.Zero;
var targetLocation = (context.Target as Node3D)?.GlobalPosition ?? Vector3.Zero;
var magnitude = context.Magnitude == 0 ? 1 : context.Magnitude;
var effect = new Effect(damage.GetEffectData(), new EffectOwnership(context.Owner, context.Owner));
context.Target.EffectsManager.ApplyEffect(effect, new SimpleHitEffectData(sourceLocation, targetLocation, magnitude));
}
public void OnEnded(AbilityBehaviorContext context)
{
context.AbilityHandle.CommitAbility();
}
}
[Tool]
[GlobalClass]
public partial class ForgeManualCancelHitBehavior : ForgeAbilityBehavior
{
[Export] public ForgeEffectData? DamageEffect { get; set; }
public override IAbilityBehavior GetBehavior() => new ManualCancelHitBehavior(DamageEffect);
}

View File

@@ -0,0 +1 @@
uid://d1bb1fvh1mnpd

View File

@@ -21,12 +21,12 @@ public class SimpleHitBehavior(ForgeEffectData? damage) : IAbilityBehavior
var effect = new Effect(damage.GetEffectData(), new EffectOwnership(context.Owner, context.Owner));
context.Target.EffectsManager.ApplyEffect(effect, new SimpleHitEffectData(sourceLocation, targetLocation, magnitude));
// context.InstanceHandle.End();
context.AbilityHandle.CommitAbility();
context.InstanceHandle.End();
}
public void OnEnded(AbilityBehaviorContext context)
{
context.AbilityHandle.CommitAbility();
}
}