public void ObjectContentHashOnto(ref int lastHash) { if (this != null) { foreach (KeyValuePair <string, object> pair in this) { HashUtils.ContentHashOnto(pair.Key, ref lastHash); HashUtils.ContentHashOntoFallback(pair.Value, ref lastHash); } } }
public void ObjectContentHashOnto(ref int lastHash) { if (this.CommonArguments != null) { HashUtils.ContentHashOnto(this.CommonArguments.HP, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.Attack, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.Defence, ref lastHash); if (this.CommonArguments.FadeInHeight.HasValue) { HashUtils.ContentHashOnto(this.CommonArguments.FadeInHeight.Value, ref lastHash); } HashUtils.ContentHashOnto(this.CommonArguments.BePushedSpeedRatio, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.BePushedSpeedRatioThrow, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.HitboxInactiveDelay, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.UseTransparentShaderDistanceThreshold, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.UseSwitchShader, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.UseEliteShader, ref lastHash); HashUtils.ContentHashOnto((int)this.CommonArguments.Nature, ref lastHash); HashUtils.ContentHashOnto((int)this.CommonArguments.Class, ref lastHash); HashUtils.ContentHashOnto((int)this.CommonArguments.RoleName, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.DefaultAnimEventPredicate, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CreatePosYOffset, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CreateCollisionRadius, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CreateCollisionHeight, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CollisionLevel, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CollisionRadius, ref lastHash); if (this.CommonArguments.PreloadEffectPatternGroups != null) { foreach (string str in this.CommonArguments.PreloadEffectPatternGroups) { HashUtils.ContentHashOnto(str, ref lastHash); } } if (this.CommonArguments.RequestSoundBankNames != null) { foreach (string str2 in this.CommonArguments.RequestSoundBankNames) { HashUtils.ContentHashOnto(str2, ref lastHash); } } if (this.CommonArguments.EffectPredicates != null) { foreach (string str3 in this.CommonArguments.EffectPredicates) { HashUtils.ContentHashOnto(str3, ref lastHash); } } HashUtils.ContentHashOnto(this.CommonArguments.HasLowPrefab, ref lastHash); HashUtils.ContentHashOnto(this.CommonArguments.CameraMinAngleRatio, ref lastHash); } if (this.StateMachinePattern != null) { HashUtils.ContentHashOnto(this.StateMachinePattern.AIMode, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowAnimDefenceRatio, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowDieEffectPattern, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.FastDieEffectPattern, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.FastDieAnimationWaitDuration, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowUpNamedState, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowUpNamedStateRetreatStopNormalizedTime, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowBlowNamedState, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowBlowDieNamedState, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowBlowAirNamedState, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ThrowBlowAirNamedStateRetreatStopNormalizedTime, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.RetreatToVelocityScaleRatio, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.RetreatBlowVelocityRatio, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.HeavyRetreatThreshold, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.UseRandomLeftRightHitEffectAsNormal, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.UseBackHitAngleCheck, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BackHitDegreeThreshold, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.UseLeftRightHitAngleCheck, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.LeftRightHitAngleRange, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.UseStandByWalkSteer, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.WalkSteerTimeThreshold, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.WalkSteerAnimatorStateName, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.KeepHitboxStanding, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.KeepHitboxStandingMinHeight, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.UseAbsMoveSpeed, ref lastHash); if (this.StateMachinePattern.BeHitEffect != null) { HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffect.EffectPattern, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffect.SwitchName, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffect.MuteAttackEffect, ref lastHash); HashUtils.ContentHashOnto((int)this.StateMachinePattern.BeHitEffect.AttackEffectTriggerPos, ref lastHash); } if (this.StateMachinePattern.BeHitEffectMid != null) { HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectMid.EffectPattern, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectMid.SwitchName, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectMid.MuteAttackEffect, ref lastHash); HashUtils.ContentHashOnto((int)this.StateMachinePattern.BeHitEffectMid.AttackEffectTriggerPos, ref lastHash); } if (this.StateMachinePattern.BeHitEffectBig != null) { HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectBig.EffectPattern, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectBig.SwitchName, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.BeHitEffectBig.MuteAttackEffect, ref lastHash); HashUtils.ContentHashOnto((int)this.StateMachinePattern.BeHitEffectBig.AttackEffectTriggerPos, ref lastHash); } HashUtils.ContentHashOnto(this.StateMachinePattern.DieAnimEventID, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ConstMoveSpeed, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.AniMinSpeedRatio, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.AniMaxSpeedRatio, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.ChangeDirLerpRatioForMove, ref lastHash); HashUtils.ContentHashOnto(this.StateMachinePattern.DefaultAnimDefenceRatio, ref lastHash); } if (this.DynamicArguments != null) { foreach (KeyValuePair <string, object> pair in this.DynamicArguments) { HashUtils.ContentHashOnto(pair.Key, ref lastHash); HashUtils.ContentHashOntoFallback(pair.Value, ref lastHash); } } if (this.EliteArguments != null) { HashUtils.ContentHashOnto(this.EliteArguments.HPRatio, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.DefenseRatio, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.AttackRatio, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.DebuffResistanceRatio, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.HexColorElite1, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.EliteEmissionScaler1, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.EliteNormalDisplacement1, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.HexColorElite2, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.EliteEmissionScaler2, ref lastHash); HashUtils.ContentHashOnto(this.EliteArguments.EliteNormalDisplacement2, ref lastHash); } if (this.AIArguments != null) { HashUtils.ContentHashOnto(this.AIArguments.AttackRange, ref lastHash); } if (this.EntityProperties != null) { foreach (KeyValuePair <string, ConfigAbilityPropertyEntry> pair2 in this.EntityProperties) { HashUtils.ContentHashOnto(pair2.Key, ref lastHash); HashUtils.ContentHashOnto((int)pair2.Value.Type, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.Default, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.Ceiling, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.Floor, ref lastHash); HashUtils.ContentHashOnto((int)pair2.Value.Stacking, ref lastHash); } } if (this.Abilities != null) { foreach (KeyValuePair <string, ConfigEntityAbilityEntry> pair3 in this.Abilities) { HashUtils.ContentHashOnto(pair3.Key, ref lastHash); HashUtils.ContentHashOnto(pair3.Value.AbilityName, ref lastHash); HashUtils.ContentHashOnto(pair3.Value.AbilityOverride, ref lastHash); } } if (this.Skills != null) { foreach (KeyValuePair <string, ConfigMonsterSkill> pair4 in this.Skills) { HashUtils.ContentHashOnto(pair4.Key, ref lastHash); if (pair4.Value.AnimatorStateNames != null) { foreach (string str4 in pair4.Value.AnimatorStateNames) { HashUtils.ContentHashOnto(str4, ref lastHash); } } HashUtils.ContentHashOnto(pair4.Value.AnimatorEventPattern, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.AnimDefenceRatio, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.AnimDefenceNormalizedTimeStart, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.AnimDefenceNormalizedTimeStop, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.AttackNormalizedTimeStart, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.AttackNormalizedTimeStop, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.HighSpeedMovement, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.SteerToTargetOnEnter, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.MassRatio, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.NeedClearEffect, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.Unselectable, ref lastHash); } } if (this.NamedStates != null) { foreach (KeyValuePair <string, ConfigNamedState> pair5 in this.NamedStates) { HashUtils.ContentHashOnto(pair5.Key, ref lastHash); if (pair5.Value.AnimatorStateNames != null) { foreach (string str5 in pair5.Value.AnimatorStateNames) { HashUtils.ContentHashOnto(str5, ref lastHash); } } HashUtils.ContentHashOnto(pair5.Value.HighSpeedMovement, ref lastHash); } } if (this.AnimEvents != null) { foreach (KeyValuePair <string, ConfigMonsterAnimEvent> pair6 in this.AnimEvents) { HashUtils.ContentHashOnto(pair6.Key, ref lastHash); if (pair6.Value.AttackHint != null) { HashUtils.ContentHashOnto(pair6.Value.AttackHint.InnerStartDelay, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackHint.InnerInflateDuration, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackHint.OffsetBase, ref lastHash); } if (pair6.Value.PhysicsProperty != null) { } HashUtils.ContentHashOnto(pair6.Value.Predicate, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.Predicate2, ref lastHash); if (pair6.Value.AttackPattern != null) { } if (pair6.Value.AttackProperty != null) { HashUtils.ContentHashOnto(pair6.Value.AttackProperty.DamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.AddedDamageValue, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.NormalDamage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.NormalDamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.FireDamage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.FireDamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.ThunderDamage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.ThunderDamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.IceDamage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.IceDamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.AlienDamage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.AlienDamagePercentage, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.AniDamageRatio, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackProperty.HitType, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackProperty.HitEffect, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackProperty.HitEffectAux, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackProperty.KillEffect, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.FrameHalt, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.RetreatVelocity, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.IsAnimEventAttack, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.IsInComboCount, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.SPRecover, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.WitchTimeRatio, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.NoTriggerEvadeAndDefend, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackProperty.NoBreakFrameHaltAdd, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackProperty.AttackTargetting, ref lastHash); if (pair6.Value.AttackProperty.CategoryTag != null) { foreach (AttackResult.AttackCategoryTag tag in pair6.Value.AttackProperty.CategoryTag) { HashUtils.ContentHashOnto((int)tag, ref lastHash); } } } if (pair6.Value.CameraShake != null) { HashUtils.ContentHashOnto(pair6.Value.CameraShake.ShakeOnNotHit, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.CameraShake.ShakeRange, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.CameraShake.ShakeTime, ref lastHash); if (pair6.Value.CameraShake.ShakeAngle.HasValue) { HashUtils.ContentHashOnto(pair6.Value.CameraShake.ShakeAngle.Value, ref lastHash); } HashUtils.ContentHashOnto(pair6.Value.CameraShake.ShakeStepFrame, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.CameraShake.ClearPreviousShake, ref lastHash); } if (pair6.Value.AttackEffect != null) { HashUtils.ContentHashOnto(pair6.Value.AttackEffect.EffectPattern, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackEffect.SwitchName, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.AttackEffect.MuteAttackEffect, ref lastHash); HashUtils.ContentHashOnto((int)pair6.Value.AttackEffect.AttackEffectTriggerPos, ref lastHash); } if (pair6.Value.TriggerAbility != null) { HashUtils.ContentHashOnto(pair6.Value.TriggerAbility.ID, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.TriggerAbility.Name, ref lastHash); } if (pair6.Value.TriggerEffectPattern != null) { HashUtils.ContentHashOnto(pair6.Value.TriggerEffectPattern.EffectPattern, ref lastHash); } if (pair6.Value.TimeSlow != null) { HashUtils.ContentHashOnto(pair6.Value.TimeSlow.Force, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.TimeSlow.Duration, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.TimeSlow.SlowRatio, ref lastHash); } if (pair6.Value.TriggerTintCamera != null) { HashUtils.ContentHashOnto(pair6.Value.TriggerTintCamera.RenderDataName, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.TriggerTintCamera.Duration, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.TriggerTintCamera.TransitDuration, ref lastHash); } } } if (this.MultiAnimEvents != null) { foreach (KeyValuePair <string, ConfigMultiAnimEvent> pair7 in this.MultiAnimEvents) { HashUtils.ContentHashOnto(pair7.Key, ref lastHash); if (pair7.Value.AnimEventNames != null) { foreach (string str6 in pair7.Value.AnimEventNames) { HashUtils.ContentHashOnto(str6, ref lastHash); } } } } if (this.AnimatorConfig != null) { foreach (KeyValuePair <string, bool> pair8 in this.AnimatorConfig) { HashUtils.ContentHashOnto(pair8.Key, ref lastHash); HashUtils.ContentHashOnto(pair8.Value, ref lastHash); } } if (this.ATKRatioNames != null) { foreach (List <string> list in this.ATKRatioNames) { if (list != null) { foreach (string str7 in list) { HashUtils.ContentHashOnto(str7, ref lastHash); } } } } if (this.DebuffResistance != null) { if (this.DebuffResistance.ImmuneStates != null) { foreach (AbilityState state in this.DebuffResistance.ImmuneStates) { HashUtils.ContentHashOnto((int)state, ref lastHash); } } HashUtils.ContentHashOnto(this.DebuffResistance.ResistanceRatio, ref lastHash); HashUtils.ContentHashOnto(this.DebuffResistance.DurationRatio, ref lastHash); } if (base.AnimatorStateParamBinds != null) { foreach (ConfigBindAnimatorStateToParameter parameter in base.AnimatorStateParamBinds) { if (parameter.AnimatorStateNames != null) { foreach (string str8 in parameter.AnimatorStateNames) { HashUtils.ContentHashOnto(str8, ref lastHash); } } if (parameter.ParameterConfig != null) { HashUtils.ContentHashOnto(parameter.ParameterConfig.ParameterID, ref lastHash); HashUtils.ContentHashOnto(parameter.ParameterConfig.ParameterIDSub, ref lastHash); HashUtils.ContentHashOnto(parameter.ParameterConfig.NormalizedTimeStart, ref lastHash); HashUtils.ContentHashOnto(parameter.ParameterConfig.NormalizedTimeStop, ref lastHash); } } } if (base.MPArguments != null) { HashUtils.ContentHashOnto(base.MPArguments.SyncSendInterval, ref lastHash); HashUtils.ContentHashOnto((int)base.MPArguments.RemoteMode, ref lastHash); if (base.MPArguments.MuteSyncAnimatorTags != null) { foreach (string str9 in base.MPArguments.MuteSyncAnimatorTags) { HashUtils.ContentHashOnto(str9, ref lastHash); } } } }
public void ObjectContentHashOnto(ref int lastHash) { HashUtils.ContentHashOnto(this.AbilityName, ref lastHash); HashUtils.ContentHashOnto(this.UseAbilityArgumentAsSpecialKey, ref lastHash); HashUtils.ContentHashOnto(this.SetAbilityArgumentToOverrideMap, ref lastHash); if (this.AbilityMixins != null) { foreach (ConfigAbilityMixin mixin in this.AbilityMixins) { if (mixin is IHashable) { HashUtils.ContentHashOnto((IHashable)mixin, ref lastHash); } } } if (this.AbilitySpecials != null) { foreach (KeyValuePair <string, object> pair in this.AbilitySpecials) { HashUtils.ContentHashOnto(pair.Key, ref lastHash); HashUtils.ContentHashOntoFallback(pair.Value, ref lastHash); } } if (this.Modifiers != null) { foreach (KeyValuePair <string, ConfigAbilityModifier> pair2 in this.Modifiers) { HashUtils.ContentHashOnto(pair2.Key, ref lastHash); HashUtils.ContentHashOnto((int)pair2.Value.TimeScale, ref lastHash); HashUtils.ContentHashOnto((int)pair2.Value.Stacking, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.IsBuff, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.IsDebuff, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.IsUnique, ref lastHash); if (pair2.Value.Duration != null) { HashUtils.ContentHashOnto(pair2.Value.Duration.isDynamic, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.Duration.fixedValue, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.Duration.dynamicKey, ref lastHash); } if (pair2.Value.ThinkInterval != null) { HashUtils.ContentHashOnto(pair2.Value.ThinkInterval.isDynamic, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.ThinkInterval.fixedValue, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.ThinkInterval.dynamicKey, ref lastHash); } if (pair2.Value.ModifierMixins != null) { foreach (ConfigAbilityMixin mixin2 in pair2.Value.ModifierMixins) { if (mixin2 is IHashable) { HashUtils.ContentHashOnto((IHashable)mixin2, ref lastHash); } } } if (pair2.Value.Properties != null) { IEnumerator <KeyValuePair <string, DynamicFloat> > enumerator = pair2.Value.Properties.GetEnumerator(); try { while (enumerator.MoveNext()) { KeyValuePair <string, DynamicFloat> current = enumerator.Current; HashUtils.ContentHashOnto(current.Key, ref lastHash); HashUtils.ContentHashOnto(current.Value.isDynamic, ref lastHash); HashUtils.ContentHashOnto(current.Value.fixedValue, ref lastHash); HashUtils.ContentHashOnto(current.Value.dynamicKey, ref lastHash); } } finally { if (enumerator == null) { } enumerator.Dispose(); } } if (pair2.Value.EntityProperties != null) { IEnumerator <KeyValuePair <string, DynamicFloat> > enumerator4 = pair2.Value.EntityProperties.GetEnumerator(); try { while (enumerator4.MoveNext()) { KeyValuePair <string, DynamicFloat> pair4 = enumerator4.Current; HashUtils.ContentHashOnto(pair4.Key, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.isDynamic, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.fixedValue, ref lastHash); HashUtils.ContentHashOnto(pair4.Value.dynamicKey, ref lastHash); } } finally { if (enumerator4 == null) { } enumerator4.Dispose(); } } HashUtils.ContentHashOnto((int)pair2.Value.State, ref lastHash); if (pair2.Value.StateOption != null) { } HashUtils.ContentHashOnto(pair2.Value.MuteStateDisplayEffect, ref lastHash); HashUtils.ContentHashOnto(pair2.Value.ApplyAttackerWitchTimeRatio, ref lastHash); if (pair2.Value.OnAdded != null) { foreach (ConfigAbilityAction action in pair2.Value.OnAdded) { if (action is IHashable) { HashUtils.ContentHashOnto((IHashable)action, ref lastHash); } } } if (pair2.Value.OnRemoved != null) { foreach (ConfigAbilityAction action2 in pair2.Value.OnRemoved) { if (action2 is IHashable) { HashUtils.ContentHashOnto((IHashable)action2, ref lastHash); } } } if (pair2.Value.OnBeingHit != null) { foreach (ConfigAbilityAction action3 in pair2.Value.OnBeingHit) { if (action3 is IHashable) { HashUtils.ContentHashOnto((IHashable)action3, ref lastHash); } } } if (pair2.Value.OnBeingHitResolved != null) { foreach (ConfigAbilityAction action4 in pair2.Value.OnBeingHitResolved) { if (action4 is IHashable) { HashUtils.ContentHashOnto((IHashable)action4, ref lastHash); } } } if (pair2.Value.OnAttackLanded != null) { foreach (ConfigAbilityAction action5 in pair2.Value.OnAttackLanded) { if (action5 is IHashable) { HashUtils.ContentHashOnto((IHashable)action5, ref lastHash); } } } if (pair2.Value.OnThinkInterval != null) { foreach (ConfigAbilityAction action6 in pair2.Value.OnThinkInterval) { if (action6 is IHashable) { HashUtils.ContentHashOnto((IHashable)action6, ref lastHash); } } } if (pair2.Value.OnEvadeStart != null) { foreach (ConfigAbilityAction action7 in pair2.Value.OnEvadeStart) { if (action7 is IHashable) { HashUtils.ContentHashOnto((IHashable)action7, ref lastHash); } } } if (pair2.Value.OnEvadeSuccess != null) { foreach (ConfigAbilityAction action8 in pair2.Value.OnEvadeSuccess) { if (action8 is IHashable) { HashUtils.ContentHashOnto((IHashable)action8, ref lastHash); } } } if (pair2.Value.OnDefendStart != null) { foreach (ConfigAbilityAction action9 in pair2.Value.OnDefendStart) { if (action9 is IHashable) { HashUtils.ContentHashOnto((IHashable)action9, ref lastHash); } } } if (pair2.Value.OnDefendSuccess != null) { foreach (ConfigAbilityAction action10 in pair2.Value.OnDefendSuccess) { if (action10 is IHashable) { HashUtils.ContentHashOnto((IHashable)action10, ref lastHash); } } } if (pair2.Value.OnMonsterCreated != null) { foreach (ConfigAbilityAction action11 in pair2.Value.OnMonsterCreated) { if (action11 is IHashable) { HashUtils.ContentHashOnto((IHashable)action11, ref lastHash); } } } if (pair2.Value.OnAvatarCreated != null) { foreach (ConfigAbilityAction action12 in pair2.Value.OnAvatarCreated) { if (action12 is IHashable) { HashUtils.ContentHashOnto((IHashable)action12, ref lastHash); } } } if (pair2.Value.OnKilled != null) { foreach (ConfigAbilityAction action13 in pair2.Value.OnKilled) { if (action13 is IHashable) { HashUtils.ContentHashOnto((IHashable)action13, ref lastHash); } } } } } if (this.DefaultModifier != null) { HashUtils.ContentHashOnto((int)this.DefaultModifier.TimeScale, ref lastHash); HashUtils.ContentHashOnto((int)this.DefaultModifier.Stacking, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.IsBuff, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.IsDebuff, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.IsUnique, ref lastHash); if (this.DefaultModifier.Duration != null) { HashUtils.ContentHashOnto(this.DefaultModifier.Duration.isDynamic, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.Duration.fixedValue, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.Duration.dynamicKey, ref lastHash); } if (this.DefaultModifier.ThinkInterval != null) { HashUtils.ContentHashOnto(this.DefaultModifier.ThinkInterval.isDynamic, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.ThinkInterval.fixedValue, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.ThinkInterval.dynamicKey, ref lastHash); } if (this.DefaultModifier.ModifierMixins != null) { foreach (ConfigAbilityMixin mixin3 in this.DefaultModifier.ModifierMixins) { if (mixin3 is IHashable) { HashUtils.ContentHashOnto((IHashable)mixin3, ref lastHash); } } } if (this.DefaultModifier.Properties != null) { IEnumerator <KeyValuePair <string, DynamicFloat> > enumerator5 = this.DefaultModifier.Properties.GetEnumerator(); try { while (enumerator5.MoveNext()) { KeyValuePair <string, DynamicFloat> pair5 = enumerator5.Current; HashUtils.ContentHashOnto(pair5.Key, ref lastHash); HashUtils.ContentHashOnto(pair5.Value.isDynamic, ref lastHash); HashUtils.ContentHashOnto(pair5.Value.fixedValue, ref lastHash); HashUtils.ContentHashOnto(pair5.Value.dynamicKey, ref lastHash); } } finally { if (enumerator5 == null) { } enumerator5.Dispose(); } } if (this.DefaultModifier.EntityProperties != null) { IEnumerator <KeyValuePair <string, DynamicFloat> > enumerator6 = this.DefaultModifier.EntityProperties.GetEnumerator(); try { while (enumerator6.MoveNext()) { KeyValuePair <string, DynamicFloat> pair6 = enumerator6.Current; HashUtils.ContentHashOnto(pair6.Key, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.isDynamic, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.fixedValue, ref lastHash); HashUtils.ContentHashOnto(pair6.Value.dynamicKey, ref lastHash); } } finally { if (enumerator6 == null) { } enumerator6.Dispose(); } } HashUtils.ContentHashOnto((int)this.DefaultModifier.State, ref lastHash); if (this.DefaultModifier.StateOption != null) { } HashUtils.ContentHashOnto(this.DefaultModifier.MuteStateDisplayEffect, ref lastHash); HashUtils.ContentHashOnto(this.DefaultModifier.ApplyAttackerWitchTimeRatio, ref lastHash); if (this.DefaultModifier.OnAdded != null) { foreach (ConfigAbilityAction action14 in this.DefaultModifier.OnAdded) { if (action14 is IHashable) { HashUtils.ContentHashOnto((IHashable)action14, ref lastHash); } } } if (this.DefaultModifier.OnRemoved != null) { foreach (ConfigAbilityAction action15 in this.DefaultModifier.OnRemoved) { if (action15 is IHashable) { HashUtils.ContentHashOnto((IHashable)action15, ref lastHash); } } } if (this.DefaultModifier.OnBeingHit != null) { foreach (ConfigAbilityAction action16 in this.DefaultModifier.OnBeingHit) { if (action16 is IHashable) { HashUtils.ContentHashOnto((IHashable)action16, ref lastHash); } } } if (this.DefaultModifier.OnBeingHitResolved != null) { foreach (ConfigAbilityAction action17 in this.DefaultModifier.OnBeingHitResolved) { if (action17 is IHashable) { HashUtils.ContentHashOnto((IHashable)action17, ref lastHash); } } } if (this.DefaultModifier.OnAttackLanded != null) { foreach (ConfigAbilityAction action18 in this.DefaultModifier.OnAttackLanded) { if (action18 is IHashable) { HashUtils.ContentHashOnto((IHashable)action18, ref lastHash); } } } if (this.DefaultModifier.OnThinkInterval != null) { foreach (ConfigAbilityAction action19 in this.DefaultModifier.OnThinkInterval) { if (action19 is IHashable) { HashUtils.ContentHashOnto((IHashable)action19, ref lastHash); } } } if (this.DefaultModifier.OnEvadeStart != null) { foreach (ConfigAbilityAction action20 in this.DefaultModifier.OnEvadeStart) { if (action20 is IHashable) { HashUtils.ContentHashOnto((IHashable)action20, ref lastHash); } } } if (this.DefaultModifier.OnEvadeSuccess != null) { foreach (ConfigAbilityAction action21 in this.DefaultModifier.OnEvadeSuccess) { if (action21 is IHashable) { HashUtils.ContentHashOnto((IHashable)action21, ref lastHash); } } } if (this.DefaultModifier.OnDefendStart != null) { foreach (ConfigAbilityAction action22 in this.DefaultModifier.OnDefendStart) { if (action22 is IHashable) { HashUtils.ContentHashOnto((IHashable)action22, ref lastHash); } } } if (this.DefaultModifier.OnDefendSuccess != null) { foreach (ConfigAbilityAction action23 in this.DefaultModifier.OnDefendSuccess) { if (action23 is IHashable) { HashUtils.ContentHashOnto((IHashable)action23, ref lastHash); } } } if (this.DefaultModifier.OnMonsterCreated != null) { foreach (ConfigAbilityAction action24 in this.DefaultModifier.OnMonsterCreated) { if (action24 is IHashable) { HashUtils.ContentHashOnto((IHashable)action24, ref lastHash); } } } if (this.DefaultModifier.OnAvatarCreated != null) { foreach (ConfigAbilityAction action25 in this.DefaultModifier.OnAvatarCreated) { if (action25 is IHashable) { HashUtils.ContentHashOnto((IHashable)action25, ref lastHash); } } } if (this.DefaultModifier.OnKilled != null) { foreach (ConfigAbilityAction action26 in this.DefaultModifier.OnKilled) { if (action26 is IHashable) { HashUtils.ContentHashOnto((IHashable)action26, ref lastHash); } } } } if (this.OnAdded != null) { foreach (ConfigAbilityAction action27 in this.OnAdded) { if (action27 is IHashable) { HashUtils.ContentHashOnto((IHashable)action27, ref lastHash); } } } if (this.OnRemoved != null) { foreach (ConfigAbilityAction action28 in this.OnRemoved) { if (action28 is IHashable) { HashUtils.ContentHashOnto((IHashable)action28, ref lastHash); } } } if (this.OnAbilityStart != null) { foreach (ConfigAbilityAction action29 in this.OnAbilityStart) { if (action29 is IHashable) { HashUtils.ContentHashOnto((IHashable)action29, ref lastHash); } } } if (this.OnKilled != null) { foreach (ConfigAbilityAction action30 in this.OnKilled) { if (action30 is IHashable) { HashUtils.ContentHashOnto((IHashable)action30, ref lastHash); } } } if (this.OnDestroy != null) { foreach (ConfigAbilityAction action31 in this.OnDestroy) { if (action31 is IHashable) { HashUtils.ContentHashOnto((IHashable)action31, ref lastHash); } } } if (this.OnFieldEnter != null) { foreach (ConfigAbilityAction action32 in this.OnFieldEnter) { if (action32 is IHashable) { HashUtils.ContentHashOnto((IHashable)action32, ref lastHash); } } } if (this.OnFieldExit != null) { foreach (ConfigAbilityAction action33 in this.OnFieldExit) { if (action33 is IHashable) { HashUtils.ContentHashOnto((IHashable)action33, ref lastHash); } } } }