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

155 lines
4.7 KiB
C#

namespace MoleMole.Config
{
[GeneratePartialHash(CombineGeneratedFile = true)]
public class AvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin : BaseAvatarSkillButtonHoldChargeAnimatorMixin, IHashable
{
public float[] ChargeLoopNormalizeTimeEnds;
public float[][] ChargeEndNormalizeTimeThershold;
public ConfigAbilityAction[][][] ChargeEndNormalizeTimeActions;
public void ObjectContentHashOnto(ref int lastHash)
{
if (ChargeLoopNormalizeTimeEnds != null)
{
float[] chargeLoopNormalizeTimeEnds = ChargeLoopNormalizeTimeEnds;
foreach (float value in chargeLoopNormalizeTimeEnds)
{
HashUtils.ContentHashOnto(value, ref lastHash);
}
}
if (ChargeEndNormalizeTimeThershold != null)
{
float[][] chargeEndNormalizeTimeThershold = ChargeEndNormalizeTimeThershold;
foreach (float[] array in chargeEndNormalizeTimeThershold)
{
if (array != null)
{
float[] array2 = array;
foreach (float value2 in array2)
{
HashUtils.ContentHashOnto(value2, ref lastHash);
}
}
}
}
if (ChargeEndNormalizeTimeActions != null)
{
ConfigAbilityAction[][][] chargeEndNormalizeTimeActions = ChargeEndNormalizeTimeActions;
foreach (ConfigAbilityAction[][] array3 in chargeEndNormalizeTimeActions)
{
if (array3 == null)
{
continue;
}
ConfigAbilityAction[][] array4 = array3;
foreach (ConfigAbilityAction[] array5 in array4)
{
if (array5 == null)
{
continue;
}
ConfigAbilityAction[] array6 = array5;
foreach (ConfigAbilityAction configAbilityAction in array6)
{
if (configAbilityAction is IHashable)
{
HashUtils.ContentHashOnto((IHashable)configAbilityAction, ref lastHash);
}
}
}
}
}
HashUtils.ContentHashOnto(AllowHoldLockDirection, ref lastHash);
HashUtils.ContentHashOnto(SkillButtonID, ref lastHash);
HashUtils.ContentHashOnto(NextLoopTriggerID, ref lastHash);
HashUtils.ContentHashOnto(AfterSkillTriggerID, ref lastHash);
if (BeforeSkillIDs != null)
{
string[] beforeSkillIDs = BeforeSkillIDs;
foreach (string value3 in beforeSkillIDs)
{
HashUtils.ContentHashOnto(value3, ref lastHash);
}
}
if (ChargeLoopSkillIDs != null)
{
string[] chargeLoopSkillIDs = ChargeLoopSkillIDs;
foreach (string value4 in chargeLoopSkillIDs)
{
HashUtils.ContentHashOnto(value4, ref lastHash);
}
}
if (AfterSkillIDs != null)
{
string[] afterSkillIDs = AfterSkillIDs;
foreach (string value5 in afterSkillIDs)
{
HashUtils.ContentHashOnto(value5, ref lastHash);
}
}
if (TransientSkillIDs != null)
{
string[] transientSkillIDs = TransientSkillIDs;
foreach (string value6 in transientSkillIDs)
{
HashUtils.ContentHashOnto(value6, ref lastHash);
}
}
if (ChargeSubTargetAmount != null)
{
int[] chargeSubTargetAmount = ChargeSubTargetAmount;
foreach (int value7 in chargeSubTargetAmount)
{
HashUtils.ContentHashOnto(value7, ref lastHash);
}
}
HashUtils.ContentHashOnto(SubTargetModifierName, ref lastHash);
HashUtils.ContentHashOnto(ChargeTimeRatioAIKey, ref lastHash);
if (ChargeLoopEffects != null)
{
MixinEffect[] chargeLoopEffects = ChargeLoopEffects;
foreach (MixinEffect mixinEffect in chargeLoopEffects)
{
HashUtils.ContentHashOnto(mixinEffect.EffectPattern, ref lastHash);
HashUtils.ContentHashOnto(mixinEffect.AudioPattern, ref lastHash);
}
}
if (ChargeSwitchEffects != null)
{
MixinEffect[] chargeSwitchEffects = ChargeSwitchEffects;
foreach (MixinEffect mixinEffect2 in chargeSwitchEffects)
{
HashUtils.ContentHashOnto(mixinEffect2.EffectPattern, ref lastHash);
HashUtils.ContentHashOnto(mixinEffect2.AudioPattern, ref lastHash);
}
}
if (ChargeLoopAudioPatterns != null)
{
string[] chargeLoopAudioPatterns = ChargeLoopAudioPatterns;
foreach (string value8 in chargeLoopAudioPatterns)
{
HashUtils.ContentHashOnto(value8, ref lastHash);
}
}
if (ChargeSwitchAudioPatterns != null)
{
string[] chargeSwitchAudioPatterns = ChargeSwitchAudioPatterns;
foreach (string value9 in chargeSwitchAudioPatterns)
{
HashUtils.ContentHashOnto(value9, ref lastHash);
}
}
HashUtils.ContentHashOnto(ImmediatelyDetachLoopEffect, ref lastHash);
HashUtils.ContentHashOnto(ChargeSwitchWindow, ref lastHash);
HashUtils.ContentHashOnto(DisallowReleaseButtonInBS, ref lastHash);
}
public override BaseAbilityMixin CreateInstancedMixin(ActorAbility instancedAbility, ActorModifier instancedModifier)
{
return new AbilityAvatarSkillButtonHoldNormalizedTimeChargeAnimatorMixin(instancedAbility, instancedModifier, this);
}
}
}