mirror of
https://github.com/tym1116/BH3.git
synced 2025-12-16 16:34:41 +01:00
40 lines
1.2 KiB
C#
40 lines
1.2 KiB
C#
using MoleMole.Config;
|
|
using UnityEngine;
|
|
|
|
namespace MoleMole
|
|
{
|
|
public class AbilityAvatarAutoUltraModeMixin : BaseAbilityMixin
|
|
{
|
|
private AvatarAutoUltraModeMixin config;
|
|
|
|
private bool _isUltraMode;
|
|
|
|
public AbilityAvatarAutoUltraModeMixin(ActorAbility instancedAbility, ActorModifier instancedModifier, ConfigAbilityMixin config)
|
|
: base(instancedAbility, instancedModifier, config)
|
|
{
|
|
this.config = (AvatarAutoUltraModeMixin)config;
|
|
}
|
|
|
|
public override void Core()
|
|
{
|
|
base.Core();
|
|
bool flag = Singleton<AvatarManager>.Instance.IsLocalAvatar(entity.GetRuntimeID());
|
|
if (!_isUltraMode && (float)actor.SP / (float)actor.maxSP >= config.AutoUltraSPRatio && flag)
|
|
{
|
|
actor.abilityPlugin.HandleActionTargetDispatch(config.BeginActions, instancedAbility, instancedModifier, actor, null);
|
|
_isUltraMode = true;
|
|
}
|
|
if (_isUltraMode && flag)
|
|
{
|
|
float num = config.CostSPSpeed * Time.deltaTime;
|
|
DelegateUtils.UpdateField(ref actor.SP, (float)actor.SP - num, 0f - num, actor.onSPChanged);
|
|
if ((float)actor.SP / (float)actor.maxSP < config.EndUltarSPRatio)
|
|
{
|
|
actor.abilityPlugin.HandleActionTargetDispatch(config.EndActions, instancedAbility, instancedModifier, actor, null);
|
|
_isUltraMode = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|