private static int CompareTargetSelect(CharacterStateControl x, CharacterStateControl y, AIActionClip aiActionClip)
    {
        if (x == y)
        {
            return(0);
        }
        int num = 0;

        if (aiActionClip != null)
        {
            switch (aiActionClip.targetSelectRerefence)
            {
            case TargetSelectReference.Hp:
                num = CharacterStateControlSorter.CompareHpRangeBase(x, y, aiActionClip.minValue, aiActionClip.maxValue);
                break;

            case TargetSelectReference.Hate:
                num = CharacterStateControlSorter.CompareHateBase(x, y);
                break;

            case TargetSelectReference.Attack:
                num = CharacterStateControlSorter.CompareAttackBase(x, y);
                break;

            case TargetSelectReference.Defence:
                num = CharacterStateControlSorter.CompareDefenceBase(x, y);
                break;

            case TargetSelectReference.SpecialAttack:
                num = CharacterStateControlSorter.CompareSpecialAttackBase(x, y);
                break;

            case TargetSelectReference.SpecialDefence:
                num = CharacterStateControlSorter.CompareSpecialDefenceBase(x, y);
                break;

            case TargetSelectReference.Speed:
                num = CharacterStateControlSorter.CompareSpeedBase(x, y, false, false);
                break;

            case TargetSelectReference.Luck:
                num = CharacterStateControlSorter.CompareLuckBase(x, y);
                break;

            case TargetSelectReference.ToleranceNone:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.None);
                break;

            case TargetSelectReference.ToleranceRed:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.Red);
                break;

            case TargetSelectReference.ToleranceBlue:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.Blue);
                break;

            case TargetSelectReference.ToleranceYellow:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.Yellow);
                break;

            case TargetSelectReference.ToleranceGreen:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.Green);
                break;

            case TargetSelectReference.ToleranceWhite:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.White);
                break;

            case TargetSelectReference.ToleranceBlack:
                num = CharacterStateControlSorter.CompareToleranceAttributeBase(x, y, global::Attribute.Black);
                break;

            case TargetSelectReference.TolerancePoison:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.Poison);
                break;

            case TargetSelectReference.ToleranceConfusion:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.Confusion);
                break;

            case TargetSelectReference.ToleranceParalysis:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.Paralysis);
                break;

            case TargetSelectReference.ToleranceSleep:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.Sleep);
                break;

            case TargetSelectReference.ToleranceStun:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.Stun);
                break;

            case TargetSelectReference.ToleranceSkillLock:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.SkillLock);
                break;

            case TargetSelectReference.ToleranceInstantDeath:
                num = CharacterStateControlSorter.CompareToleranceAffectEffectBase(x, y, AffectEffect.InstantDeath);
                break;

            case TargetSelectReference.AttributeNone:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.None);
                break;

            case TargetSelectReference.AttributeRed:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.Red);
                break;

            case TargetSelectReference.AttributeBlue:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.Blue);
                break;

            case TargetSelectReference.AttributeYellow:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.Yellow);
                break;

            case TargetSelectReference.AttributeGreen:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.Green);
                break;

            case TargetSelectReference.AttributeWhite:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.White);
                break;

            case TargetSelectReference.AttributeBlack:
                num = CharacterStateControlSorter.CompareAttributeBase(x, y, global::Attribute.Black);
                break;

            case TargetSelectReference.Ap:
                num = CharacterStateControlSorter.CompareApRangeBase(x, y, aiActionClip.minValue, aiActionClip.maxValue);
                break;

            case TargetSelectReference.AffectEffect:
                num = CharacterStateControlSorter.CompareAffectEffectRangeBase(x, y, (int)aiActionClip.minValue, (int)aiActionClip.maxValue);
                break;

            case TargetSelectReference.SufferType:
                num = CharacterStateControlSorter.CompareSufferTypeRangeBase(x, y, (int)aiActionClip.minValue, (int)aiActionClip.maxValue);
                break;
            }
            if (aiActionClip.selectingOrder == SelectingOrder.LowAndHavent)
            {
                num *= -1;
            }
        }
        return(num);
    }