private static int GetEquipmentNum(ARENA_LIMIT limitType)
    {
        switch (limitType)
        {
        case ARENA_LIMIT.EQUIP_ONLY_ONE_WEAPON:
            return(1);

        case ARENA_LIMIT.EQUIP_TWO_WEAPONS:
            return(2);

        default:
            return(3);
        }
    }
    private static SP_ATTACK_TYPE GetSPAttackType(ARENA_LIMIT limitType)
    {
        switch (limitType)
        {
        case ARENA_LIMIT.ACTION_TYPE_NORMAL:
            return(SP_ATTACK_TYPE.NONE);

        case ARENA_LIMIT.ACTION_TYPE_HEAT:
            return(SP_ATTACK_TYPE.HEAT);

        case ARENA_LIMIT.ACTION_TYPE_SOUL:
            return(SP_ATTACK_TYPE.SOUL);

        default:
            return(SP_ATTACK_TYPE.NONE);
        }
    }
    public static bool JudgeLimit(ArenaTable.ArenaData arenaData, EquipItemTable.EquipItemData[] equipSet)
    {
        List <EQUIPMENT_TYPE> list  = new List <EQUIPMENT_TYPE>();
        List <SP_ATTACK_TYPE> list2 = new List <SP_ATTACK_TYPE>();
        int num = 3;
        int i   = 0;

        for (int num2 = arenaData.limits.Length; i < num2; i++)
        {
            ARENA_LIMIT aRENA_LIMIT = arenaData.limits[i];
            if (aRENA_LIMIT != 0)
            {
                if (WeaponTypeLimit.Contains(aRENA_LIMIT))
                {
                    list.Add(GetEquipmentType(aRENA_LIMIT));
                }
                else if (SpAttackTypeLimit.Contains(aRENA_LIMIT))
                {
                    list2.Add(GetSPAttackType(aRENA_LIMIT));
                }
                else if (WeaponNumTypeLimit.Contains(aRENA_LIMIT))
                {
                    num = GetEquipmentNum(aRENA_LIMIT);
                }
            }
        }
        bool flag = true;

        if (list.Count >= 1)
        {
            flag &= JudgeLimitWeapon(list, equipSet);
        }
        if (list2.Count >= 1)
        {
            flag &= JudgeLimitWeaponAttackType(list2, equipSet);
        }
        if (num <= 2)
        {
            flag &= JudgeLimitWeaponNum(num, equipSet);
        }
        return(flag);
    }
    private static EQUIPMENT_TYPE GetEquipmentType(ARENA_LIMIT limitType)
    {
        switch (limitType)
        {
        case ARENA_LIMIT.WEAPON_ONE_HAND_SWORD:
            return(EQUIPMENT_TYPE.ONE_HAND_SWORD);

        case ARENA_LIMIT.WEAPON_TWO_HAND_SWORD:
            return(EQUIPMENT_TYPE.TWO_HAND_SWORD);

        case ARENA_LIMIT.WEAPON_SPEAR:
            return(EQUIPMENT_TYPE.SPEAR);

        case ARENA_LIMIT.WEAPON_PAIR_SWORDS:
            return(EQUIPMENT_TYPE.PAIR_SWORDS);

        case ARENA_LIMIT.WEAPON_ARROW:
            return(EQUIPMENT_TYPE.ARROW);

        default:
            return(EQUIPMENT_TYPE.NONE);
        }
    }