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); } } }