mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 08:25:20 +01:00
42 lines
956 B
C#
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;
|
|
}
|
|
}
|
|
}
|
|
}
|