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

117 lines
3.7 KiB
C#

namespace MoleMole.Config
{
[GeneratePartialHash(CombineGeneratedFile = true)]
public class AvatarSkillButtonHoldChargeAnimatorMixin : BaseAvatarSkillButtonHoldChargeAnimatorMixin, IHashable
{
public float[] ChargeLoopDurations;
public DynamicFloat ChargeTimeRatio = DynamicFloat.ONE;
public void ObjectContentHashOnto(ref int lastHash)
{
if (ChargeLoopDurations != null)
{
float[] chargeLoopDurations = ChargeLoopDurations;
foreach (float value in chargeLoopDurations)
{
HashUtils.ContentHashOnto(value, ref lastHash);
}
}
if (ChargeTimeRatio != null)
{
HashUtils.ContentHashOnto(ChargeTimeRatio.isDynamic, ref lastHash);
HashUtils.ContentHashOnto(ChargeTimeRatio.fixedValue, ref lastHash);
HashUtils.ContentHashOnto(ChargeTimeRatio.dynamicKey, 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 value2 in beforeSkillIDs)
{
HashUtils.ContentHashOnto(value2, ref lastHash);
}
}
if (ChargeLoopSkillIDs != null)
{
string[] chargeLoopSkillIDs = ChargeLoopSkillIDs;
foreach (string value3 in chargeLoopSkillIDs)
{
HashUtils.ContentHashOnto(value3, ref lastHash);
}
}
if (AfterSkillIDs != null)
{
string[] afterSkillIDs = AfterSkillIDs;
foreach (string value4 in afterSkillIDs)
{
HashUtils.ContentHashOnto(value4, ref lastHash);
}
}
if (TransientSkillIDs != null)
{
string[] transientSkillIDs = TransientSkillIDs;
foreach (string value5 in transientSkillIDs)
{
HashUtils.ContentHashOnto(value5, ref lastHash);
}
}
if (ChargeSubTargetAmount != null)
{
int[] chargeSubTargetAmount = ChargeSubTargetAmount;
foreach (int value6 in chargeSubTargetAmount)
{
HashUtils.ContentHashOnto(value6, 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 value7 in chargeLoopAudioPatterns)
{
HashUtils.ContentHashOnto(value7, ref lastHash);
}
}
if (ChargeSwitchAudioPatterns != null)
{
string[] chargeSwitchAudioPatterns = ChargeSwitchAudioPatterns;
foreach (string value8 in chargeSwitchAudioPatterns)
{
HashUtils.ContentHashOnto(value8, 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 AbilityAvatarSkillButtonHoldChargeMixin(instancedAbility, instancedModifier, this);
}
}
}