mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-12 22:44:35 +01:00
51 lines
1.4 KiB
C#
51 lines
1.4 KiB
C#
using MoleMole.Config;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class AbilityAttachModifierToAnimatorBooleanMixin : BaseAbilityMixin
|
|
{
|
|
public AttachModifierToAnimatorBooleanMixin config;
|
|
|
|
private BaseMonoAnimatorEntity _animatorEntity;
|
|
|
|
private bool _lastAnimatorBoolValue;
|
|
|
|
public AbilityAttachModifierToAnimatorBooleanMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
|
|
: base(instancedAbility, instancedModifier, config)
|
|
{
|
|
this.config = (AttachModifierToAnimatorBooleanMixin)config;
|
|
_animatorEntity = (BaseMonoAnimatorEntity)entity;
|
|
}
|
|
|
|
public override void OnAdded()
|
|
{
|
|
_lastAnimatorBoolValue = _animatorEntity.GetLocomotionBool(config.AnimatorBoolean);
|
|
if (config.IsInvert && !_lastAnimatorBoolValue)
|
|
{
|
|
actor.abilityPlugin.ApplyModifier(instancedAbility, config.ModifierName);
|
|
}
|
|
}
|
|
|
|
public override void OnRemoved()
|
|
{
|
|
}
|
|
|
|
public override void Core()
|
|
{
|
|
bool locomotionBool = _animatorEntity.GetLocomotionBool(config.AnimatorBoolean);
|
|
if (locomotionBool != _lastAnimatorBoolValue)
|
|
{
|
|
if ((!config.IsInvert) ? locomotionBool : (!locomotionBool))
|
|
{
|
|
actor.abilityPlugin.ApplyModifier(instancedAbility, config.ModifierName);
|
|
}
|
|
else
|
|
{
|
|
actor.abilityPlugin.TryRemoveModifier(instancedAbility, config.ModifierName);
|
|
}
|
|
_lastAnimatorBoolValue = locomotionBool;
|
|
}
|
|
}
|
|
}
|
|
}
|