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

51 lines
1.6 KiB
C#

namespace MoleMole.Config
{
[GeneratePartialHash(CombineGeneratedFile = true)]
public class KeepAttackSameTargetMixin : ConfigAbilityMixin, IHashable
{
public DynamicFloat TargetFadeWindow;
public ConfigAbilityAction[] OnAttackSameTarget = ConfigAbilityAction.EMPTY;
public ConfigAbilityAction[] OnTargetFadeOrChanged = ConfigAbilityAction.EMPTY;
public void ObjectContentHashOnto(ref int lastHash)
{
if (TargetFadeWindow != null)
{
HashUtils.ContentHashOnto(TargetFadeWindow.isDynamic, ref lastHash);
HashUtils.ContentHashOnto(TargetFadeWindow.fixedValue, ref lastHash);
HashUtils.ContentHashOnto(TargetFadeWindow.dynamicKey, ref lastHash);
}
if (OnAttackSameTarget != null)
{
ConfigAbilityAction[] onAttackSameTarget = OnAttackSameTarget;
foreach (ConfigAbilityAction configAbilityAction in onAttackSameTarget)
{
if (configAbilityAction is IHashable)
{
HashUtils.ContentHashOnto((IHashable)configAbilityAction, ref lastHash);
}
}
}
if (OnTargetFadeOrChanged == null)
{
return;
}
ConfigAbilityAction[] onTargetFadeOrChanged = OnTargetFadeOrChanged;
foreach (ConfigAbilityAction configAbilityAction2 in onTargetFadeOrChanged)
{
if (configAbilityAction2 is IHashable)
{
HashUtils.ContentHashOnto((IHashable)configAbilityAction2, ref lastHash);
}
}
}
public override BaseAbilityMixin CreateInstancedMixin(ActorAbility instancedAbility, ActorModifier instancedModifier)
{
return new AbilityKeepAttackSameTargetMixin(instancedAbility, instancedModifier, this);
}
}
}