Files
BH3/Assets/Scripts/Assembly-CSharp/MoleMole/AbilityHPThresholdMixin.cs
2025-08-13 09:26:42 +08:00

42 lines
956 B
C#

using MoleMole.Config;
namespace MoleMole
{
public class AbilityHPThresholdMixin : BaseAbilityMixin
{
private HPThresholdMixin config;
private bool _isApplied;
public AbilityHPThresholdMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
: base(instancedAbility, instancedModifier, config)
{
this.config = (HPThresholdMixin)config;
}
public override void OnAdded()
{
_isApplied = false;
}
public override void Core()
{
float lhs = (float)actor.HP / (float)actor.maxHP;
bool flag = EvaluatePredicate(lhs, instancedAbility.Evaluate(config.Threshold), config.Predicate);
if (_isApplied)
{
if (!flag)
{
actor.abilityPlugin.TryRemoveModifier(instancedAbility, config.ModifierName);
_isApplied = false;
}
}
else if (flag)
{
actor.abilityPlugin.ApplyModifier(instancedAbility, config.ModifierName);
_isApplied = true;
}
}
}
}