Files
MovementTests/addons/forge/resources/components/ForgeGrantAbilityConfig.cs
Minimata c4be97e0de
All checks were successful
Create tag and build when new code gets to main / BumpTag (push) Successful in 21s
Create tag and build when new code gets to main / Test (push) Successful in 6m56s
Create tag and build when new code gets to main / Export (push) Successful in 9m3s
added forge addon
2026-02-08 15:16:01 +01:00

52 lines
1.3 KiB
C#

// Copyright © Gamesmiths Guild.
using System.Diagnostics;
using Gamesmiths.Forge.Abilities;
using Gamesmiths.Forge.Core;
using Gamesmiths.Forge.Effects.Components;
using Gamesmiths.Forge.Godot.Resources.Abilities;
using Gamesmiths.Forge.Godot.Resources.Magnitudes;
using Godot;
namespace ForgeGodot.Addons.Forge.Resources.Components;
[Tool]
[GlobalClass]
public partial class ForgeGrantAbilityConfig : Resource
{
[Export]
public ForgeAbilityData? AbilityData { get; set; }
[Export]
public ForgeScalableInt AbilityLevel { get; set; } = new(1);
[Export]
public AbilityDeactivationPolicy RemovalPolicy { get; set; } = AbilityDeactivationPolicy.CancelImmediately;
[Export]
public AbilityDeactivationPolicy InhibitionPolicy { get; set; } = AbilityDeactivationPolicy.CancelImmediately;
[Export]
public bool TryActivateOnGrant { get; set; }
[Export]
public bool TryActivateOnEnable { get; set; }
[Export]
public LevelComparison LevelOverridePolicy { get; set; } = LevelComparison.None;
public GrantAbilityConfig GetGrantAbilityConfig()
{
Debug.Assert(AbilityData is not null, $"{nameof(AbilityData)} reference is missing.");
return new GrantAbilityConfig(
AbilityData.GetAbilityData(),
AbilityLevel.GetScalableInt(),
RemovalPolicy,
InhibitionPolicy,
TryActivateOnGrant,
TryActivateOnEnable,
LevelOverridePolicy);
}
}