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

71 lines
1.7 KiB
C#

using MoleMole.Config;
namespace MoleMole
{
public class AbilityAvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin : BaseAbilityAvatarSkillButtonHoldChargeMixin
{
private AvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin config;
private int _thersholdIndex;
public AbilityAvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
: base(instancedAbility, instancedModifier, config)
{
this.config = (AvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin)config;
}
public override void OnAdded()
{
base.OnAdded();
}
protected override void OnBeforeToInLoop()
{
_thersholdIndex = 0;
}
protected override void UpdateInLoop()
{
if (config.ChargeEndNormalizeTimeThershold == null)
{
return;
}
float currentNormalizedTime = entity.GetCurrentNormalizedTime();
float[] array = config.ChargeEndNormalizeTimeThershold[_loopIx];
for (int i = _thersholdIndex; i < array.Length; i++)
{
if (currentNormalizedTime < array[i])
{
if (_thersholdIndex != i)
{
_thersholdIndex = i;
}
break;
}
}
}
protected override void OnInLoopToAfter()
{
if (config.ChargeEndNormalizeTimeThershold != null)
{
int num = _loopIx;
if (_loopIx == _loopCount)
{
num--;
}
actor.abilityPlugin.HandleActionTargetDispatch(config.ChargeEndNormalizeTimeActions[num][_thersholdIndex], instancedAbility, instancedModifier, actor, null);
}
}
protected override void OnMoveingToNextLoop(bool endLoop)
{
}
protected override bool ShouldMoveToNextLoop()
{
return entity.GetCurrentNormalizedTime() > config.ChargeLoopNormalizeTimeEnds[_loopIx];
}
}
}