Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

Боевые борги

Материал из Star Horizon Wiki

<!DOCTYPE html> <html lang="ru"> <head>

   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Боевые Борги Star Horizon</title>
   <style>
       * {
           margin: 0;
           padding: 0;
           box-sizing: border-box;
       }
       body {
           font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
           background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
           color: #e0e0e0;
           padding: 20px;
           min-height: 100vh;
       }
       .container {
           max-width: 1600px;
           margin: 0 auto;
       }
       header {
           text-align: center;
           margin-bottom: 40px;
           padding: 20px;
           background: rgba(192, 192, 192, 0.1);
           border-left: 4px solid #c0c0c0;
           border-radius: 8px;
       }
       h1 {
           font-size: 2.5em;
           color: #c0c0c0;
           margin-bottom: 10px;
           text-shadow: 0 0 10px rgba(192, 192, 192, 0.5);
       }
       .subtitle {
           color: #a0a0a0;
           font-size: 1.1em;
       }
       .stats {
           display: grid;
           grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
           gap: 15px;
           margin-top: 20px;
       }
       .stat-box {
           background: rgba(192, 192, 192, 0.2);
           padding: 15px;
           border-radius: 6px;
           text-align: center;
           border: 1px solid rgba(192, 192, 192, 0.5);
       }
       .stat-box strong {
           color: #c0c0c0;
           font-size: 1.3em;
       }
       .controls {
           margin-bottom: 30px;
           display: flex;
           gap: 15px;
           flex-wrap: wrap;
           background: rgba(0, 0, 0, 0.3);
           padding: 20px;
           border-radius: 8px;
       }
       .control-group {
           display: flex;
           gap: 10px;
           align-items: center;
       }
       .control-group label {
           font-weight: bold;
           color: #e0e0e0;
       }
       input[type="text"],
       select {
           padding: 10px 15px;
           border: 1px solid rgba(192, 192, 192, 0.5);
           background: rgba(30, 30, 50, 0.8);
           color: #e0e0e0;
           border-radius: 4px;
           font-size: 0.95em;
       }
       input[type="text"]:focus,
       select:focus {
           outline: none;
           border-color: #c0c0c0;
           box-shadow: 0 0 8px rgba(192, 192, 192, 0.5);
       }
       button {
           padding: 10px 20px;
           background: linear-gradient(135deg, #c0c0c0 0%, #b0b0b0 100%);
           color: white;
           border: none;
           border-radius: 4px;
           cursor: pointer;
           font-weight: bold;
           transition: transform 0.2s, box-shadow 0.2s;
       }
       button:hover {
           transform: translateY(-2px);
           box-shadow: 0 5px 15px rgba(192, 192, 192, 0.4);
       }
       .table-wrapper {
           overflow-x: auto;
           background: rgba(0, 0, 0, 0.4);
           border-radius: 8px;
           padding: 20px;
           border: 1px solid rgba(192, 192, 192, 0.2);
       }
       table {
           width: 100%;
           border-collapse: collapse;
           font-size: 0.9em;
       }
       thead {
           background: rgba(192, 192, 192, 0.2);
           position: sticky;
           top: 0;
       }
       th {
           padding: 15px;
           text-align: left;
           border-bottom: 2px solid #c0c0c0;
           color: #e0e0e0;
           font-weight: bold;
           cursor: pointer;
           user-select: none;
           transition: background 0.2s;
       }
       th:hover {
           background: rgba(192, 192, 192, 0.3);
       }
       th::after {
           content: ' ⇅';
           font-size: 0.8em;
           opacity: 0.5;
       }
       td {
           padding: 12px 15px;
           border-bottom: 1px solid rgba(192, 192, 192, 0.1);
       }
       tr:hover {
           background: rgba(192, 192, 192, 0.1);
       }
       .category {
           background: rgba(192, 192, 192, 0.15);
           font-weight: bold;
           color: #e0e0e0;
       }
       .category td {
           padding: 15px;
           border-top: 2px solid rgba(192, 192, 192, 0.5);
       }
       .armor-type {
           color: #ffa07a;
           font-weight: bold;
       }
       .speed-fast {
           color: #90EE90;
           font-weight: bold;
       }
       .speed-medium {
           color: #ffeb3b;
           font-weight: bold;
       }
       .speed-slow {
           color: #ff9999;
           font-weight: bold;
       }
       .health-high {
           color: #90EE90;
       }
       .health-medium {
           color: #ffeb3b;
       }
       .health-low {
           color: #ff9999;
       }
       .module-badge {
           display: inline-block;
           padding: 3px 8px;
           background: rgba(100, 150, 255, 0.3);
           border: 1px solid rgba(100, 150, 255, 0.6);
           border-radius: 3px;
           font-size: 0.85em;
           margin: 2px;
           color: #64b8ff;
       }
   </style>

</head> <body>

       <header>

🤖 StarHorizon - Система Боргов

Справочник по киборгам и их характеристикам

Всего боргов
                   16
Всего модулей
                   44
Макс. скорость
                   5.8 м/с
Макс. здоровье
                   520 HP
       </header>
               <label for="searchInput">🔍 Поиск:</label>
               <input type="text" id="searchInput" placeholder="Введите название борга..." oninput="filterTable()">
               <label for="categoryFilter">Категория:</label>
               <select id="categoryFilter" onchange="filterTable()">
                   <option value="all">Все категории</option>
                   <option value="borgs">Боевые борги</option>
                   <option value="standard">Небоевые борги</option>
                   <option value="combat">Боевые модули</option>
                   <option value="generic">Универсальные модули</option>
                   <option value="medical">Медицинские модули</option>
                   <option value="cargo">Грузовые модули</option>
                   <option value="engineering">Инженерные модули</option>
                   <option value="janitor">Уборочные модули</option>
                   <option value="science">Научные модули</option>
                   <option value="service">Сервисные модули</option>
                   <option value="syndicate">Синдикатские модули</option>
               </select>
               <button onclick="resetFilters()">Сбросить фильтры</button>
               <button onclick="sortTable(2)">Сортировать по здоровью</button>
<thead> </thead> <tbody id="tableBody"> </tbody>
Название Здоровье (Крит / Смерть) Скорость (Ходьба / Бег) Броня Совместимые модули Дефолтные модули Доп. слоты
<thead> </thead> <tbody id="moduleTableBody"> </tbody>
Название (EN) Тип модуля Описание (RU) Встроенные предметы
   <script>
       // Данные о модулях
       const modulesData = [
           // BorgModuleCombat - боевые модули
           { category: 'combat', num: 1, nameEn: 'PKA Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с прото-кинетическим ускорителем.', items: 'протокинетический ускоритель, крушитель' },
           { category: 'combat', num: 2, nameEn: 'Combat Pistol Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с боевым пистолетом для отключения целей.', items: 'echis (x2)' },
           { category: 'combat', num: 3, nameEn: 'Advanced Laser Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с продвинутым лазерным оружием. Сбалансированная огневая мощь и дальность.', items: 'advanced laser pistol (x2)' },
           { category: 'combat', num: 4, nameEn: 'Heavy PKA Cyborg Module', type: 'BorgModuleCombat', descRu: 'Продвинутый модуль с улучшенным прото-кинетическим ускорителем повышенной мощности.', items: 'proto-kinetic accelerator cannon, крушитель' },
           { category: 'combat', num: 5, nameEn: 'PKA Railgun Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с рельсотроном прото-кинетического ускорителя. Высокопроникающее оружие дальнего действия.', items: 'протокинетическая рельса, крушитель' },
           { category: 'combat', num: 6, nameEn: 'PKA Repeater Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с автоматическим повторителем прото-кинетического ускорителя. Высокий темп огня.', items: 'протокинетический повторитель, крушитель' },
           { category: 'combat', num: 7, nameEn: 'PKA Shotgun Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с дробовиком прото-кинетического ускорителя. Мощное оружие близкого боя.', items: 'протокинетический дробовик, крушитель' },
           { category: 'combat', num: 8, nameEn: 'L6C Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с пулемётом L6C повышенной мощности.', items: 'cyborg GSW LMG-6' },
           { category: 'combat', num: 9, nameEn: 'Heavy Laser Cyborg Module', type: 'BorgModuleCombat', descRu: 'Модуль с тяжелым лазерным оружием повышенной мощности. Разрушительно против защищённых целей.', items: 'X-01 multiphase energy gun (x2)' },
           { category: 'combat', num: 10, nameEn: 'Cloaking Device Cyborg Module', type: 'BorgModuleCombat', descRu: 'Интегрированное устройство невидимости для скрытных операций. Делает невидимым на продолжительное время.', items: 'устройство маскировки' },
           // BorgModuleGeneric - универсальные модули
           { category: 'generic', num: 11, nameEn: 'Cable Cyborg Module', type: 'BorgModuleGeneric', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'кусачки, лом, т-лучевой сканер, моток НВ проводов, моток СВ проводов, моток ВВ проводов' },
           { category: 'generic', num: 12, nameEn: 'Fire Extinguisher Cyborg Module', type: 'BorgModuleGeneric', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'маневровый реактивный огнетушитель' },
           { category: 'generic', num: 13, nameEn: 'Tool Cyborg Module', type: 'BorgModuleGeneric', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'лом, гаечный ключ, отвёртка, кусачки, промышленный сварочный аппарат, мультитул, подъёмник для обслуживания' },
           // BorgModuleMedical - медицинские модули
           { category: 'medical', num: 14, nameEn: 'Diagnosis Cyborg Module', type: 'BorgModuleMedical', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'анализатор здоровья, стетоскоп' },
           { category: 'medical', num: 15, nameEn: 'Topicals Cyborg Module', type: 'BorgModuleMedical', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'анализатор здоровья, набор для ушибов, мазь, марлевый бинт, пакет крови, шприц' },
           { category: 'medical', num: 16, nameEn: 'Rescue Cyborg Module', type: 'BorgModuleMedical', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'анализатор здоровья, дефибриллятор, ручной этикетировщик' },
           { category: 'medical', num: 17, nameEn: 'Chemical Cyborg Module', type: 'BorgModuleMedical', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'анализатор здоровья, пипетка борга, шприц, пробирка (x3)' },
           { category: 'medical', num: 18, nameEn: 'Advanced Chemical Cyborg Module', type: 'BorgModuleMedical', descRu: 'Продвинутый медицинский модуль, содержащий кибернетическую адаптацию высокоценного гипоспрея. Теперь ваши киборги могут ещё быстрее вводить хлоральгидрат вредителям экипажа!', items: 'анализатор здоровья, гипоспрей борга, шприц, мензурка (x2)' },
           // BorgModuleCargo - грузовые модули
           { category: 'cargo', num: 19, nameEn: 'Appraisal Cyborg Module', type: 'BorgModuleCargo', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'оценочный инструмент, ящик с товарами (x2)' },
           { category: 'cargo', num: 20, nameEn: 'Mining Cyborg Module', type: 'BorgModuleCargo', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'шахтёрский бур, лопата, сканер минералов, портативная рация, мешок для руды' },
           { category: 'cargo', num: 21, nameEn: 'Advanced Mining Cyborg Module', type: 'BorgModuleCargo', descRu: 'Продвинутый грузовой модуль, содержащий продвинутое шахтёрское оборудование. Исследования показывают, что он увеличивает производительность киборга на 150%.', items: 'шахтёрский бур с алмазным покрытием, лопата, продвинутый сканер минералов, портативная рация, блюспейс мешок для руды' },
           { category: 'cargo', num: 22, nameEn: 'Grappling Gun Cyborg Module', type: 'BorgModuleCargo', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'крюк-кошка, встроенная система позиционирования, ручной сканер массы' },
           // BorgModuleEngineering - инженерные модули
           { category: 'engineering', num: 23, nameEn: 'Advanced Tool Cyborg Module', type: 'BorgModuleEngineering', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'челюсти жизни, электродрель, экспериментальный сварочный аппарат, мультитул, продвинутый передатчик сигналов, подъёмник для обслуживания' },
           { category: 'engineering', num: 24, nameEn: 'Construction Cyborg Module', type: 'BorgModuleEngineering', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'строительная сумка, сталь, стальная плитка, конденсатор, плоскоблок ракетного двигателя, консоль станционного учёта (машинная плата)' },
           { category: 'engineering', num: 25, nameEn: 'RCD Cyborg Module', type: 'BorgModuleEngineering', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'экспериментальный РСУ, газоанализатор, встроенный атмос голопроектор, счётчик Гейгера' },
           // BorgModuleJanitor - уборочные модули
           { category: 'janitor', num: 26, nameEn: 'Custodial Cyborg Module', type: 'BorgModuleJanitor', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'лампозаменитель, вантуз, лампа накаливания, мешок для мусора, мыло' },
           { category: 'janitor', num: 27, nameEn: 'Cleaning Cyborg Module', type: 'BorgModuleJanitor', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'проектор голографических знаков, швабра, ведро, распылитель, чистоната (x2)' },
           { category: 'janitor', num: 28, nameEn: 'Advanced Cleaning Cyborg Module', type: 'BorgModuleJanitor', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'продвинутая швабра, улучшенный встроенный распылитель, проектор голографических знаков, ведро, чистоната (x2)' },
           // BorgModuleScience - научные модули
           { category: 'science', num: 29, nameEn: 'Artifact Cyborg Module', type: 'BorgModuleScience', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'сканер узлов, газоанализатор, пипетка борга, счётчик Гейгера, пробирка, распылитель' },
           { category: 'science', num: 30, nameEn: 'Anomaly Cyborg Module', type: 'BorgModuleScience', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'сканер аномалий, локатор аномалий, широкоспектральный локатор аномалий, ручной этикетировщик, армированное стекло, плазменное армированное стекло' },
           // BorgModuleService - сервисные модули
           { category: 'service', num: 31, nameEn: 'Service Cyborg Module', type: 'BorgModuleService', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'ручка, ручной этикетировщик, печать ОДОБРЕНО, печать ОТКАЗАНО, пипетка борга, встроенная пробирка' },
           { category: 'service', num: 32, nameEn: 'Musique Cyborg Module', type: 'BorgModuleService', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'синтезатор, электрогитара, саксофон' },
           { category: 'service', num: 33, nameEn: 'Gardening Cyborg Module', type: 'BorgModuleService', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'маленькая тяпка, лопатка, кусачки для растений, пипетка борга, ведро, пакет семян (яблоко)' },
           { category: 'service', num: 34, nameEn: 'Harvesting Cyborg Module', type: 'BorgModuleService', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'коса, топорик, сумка для растений, яблоко, спрей от сорняков' },
           { category: 'service', num: 35, nameEn: 'Clowning Cyborg Module', type: 'BorgModuleService', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'велосипедный клаксон, клоунский рекордер, позолоченный велосипедный клаксон, банановая кожура, кремовый банановый пирог' },
           { category: 'service', num: 36, nameEn: 'Translation Cyborg Module', type: 'BorgModuleService', descRu: 'Модуль, оснащённый универсальной технологией перевода для общения на разных языках.', items: 'продвинутый переводчик' },
           // BorgModuleSyndicate - синдикатские модули
           { category: 'syndicate', num: 37, nameEn: 'Weapon Cyborg Module', type: 'BorgModuleSyndicate', descRu: 'Часть технологии, дающая киборгам новые способности.', items: 'echis, энергокинжал' },
           { category: 'syndicate', num: 38, nameEn: 'Operative Cyborg Module', type: 'BorgModuleSyndicate', descRu: 'Модуль, в который входят лом, криптографический секвенсор и поисковой навигатор синдиката.', items: 'лом, криптографический секвенсор, Дестабилизатор аутентификации, поисковый навигатор синдиката' },
           { category: 'syndicate', num: 39, nameEn: 'Energy Sword Cyborg Module', type: 'BorgModuleSyndicate', descRu: 'Модуль, в который входит сдвоенный энергетический меч.', items: 'сдвоенный энергетический меч, поисковый навигатор синдиката' },
           { category: 'syndicate', num: 40, nameEn: 'L6C ROW Cyborg Module', type: 'BorgModuleSyndicateAssault', descRu: 'Модуль, в который входит L6C.', items: 'cyborg GSW LMG-6, поисковый навигатор синдиката' },
           { category: 'syndicate', num: 41, nameEn: 'Martyr Cyborg Module', type: 'BorgModuleSyndicate', descRu: 'Модуль, поставляемый со взрывчаткой, с которой вы, скорее всего, не захотите связываться сами.', items: 'Самоуничтожение' },
           { category: 'syndicate', num: 42, nameEn: 'Syndicate Laser Module', type: 'BorgModuleSyndicateAssault', descRu: 'Продвинутый лазерный модуль для киборгов синдиката. Высокоэффективная система оружия.', items: 'advanced laser pistol, поисковый навигатор синдиката' },
           { category: 'syndicate', num: 43, nameEn: 'Syndicate Heavy Laser Module', type: 'BorgModuleSyndicateAssault', descRu: 'Продвинутый тяжёлый лазерный модуль с значительно повышенной огневой мощью. Разрушительный против бронированных целей.', items: 'X-01 multiphase energy gun (x2), поисковый навигатор синдиката' },
           { category: 'syndicate', num: 44, nameEn: 'Syndicate Cloaking Device Module', type: 'BorgModuleSyndicate', descRu: 'Интегрированное устройство невидимости для скрытных операций. Делает невидимым на продолжительное время.', items: 'устройство маскировки' }
       ];
       // Данные о боргах
       const borgsData = [
           // Боевые борги
           {
               category: 'borgs',
               num: 1,
               name: 'Assassin Cyborg',
               health: '120 / 240',
               healthValue: 240,
               armor: 'Blunt: 8%, Slash: 8%, Piercing: 5%, Shock: 15%
Heat: -5 (flat)', speed: '3.6 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleMedical', defaultModules: 'BorgModuleTool, BorgModuleCombatCloakingDevice, BorgModuleCombatEchis, BorgModuleJetpack', extraSlots: 2 }, { category: 'borgs', num: 2, name: 'Scout Cyborg', health: '160 / 320', healthValue: 320, armor: 'Blunt: 15%, Slash: 15%, Piercing: 10%, Shock: 20%
Heat: -10 (flat)', speed: '3.8 / 5.8', speedValue: 5.8, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleMedical', defaultModules: 'BorgModuleTool, BorgModuleCombatCloakingDevice, BorgModuleJetpack', extraSlots: 2 }, { category: 'borgs', num: 3, name: 'Light Crawler Cyborg', health: '200 / 440', healthValue: 440, armor: 'Blunt: 25%, Slash: 25%, Piercing: 25%, Shock: 25%
Heat: -20 (flat)', speed: '3.0 / 4.8', speedValue: 4.8, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleCargo', defaultModules: 'BorgModuleTool, BorgModuleCombatPKARepeater, BorgModuleJetpack', extraSlots: 3 }, { category: 'borgs', num: 4, name: 'Heavy Crawler Cyborg', health: '260 / 520', healthValue: 520, armor: 'Blunt: 30%, Slash: 30%, Piercing: 28%, Shock: 30%
Heat: -25 (flat)', speed: '2.6 / 4.3', speedValue: 4.3, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleCargo', defaultModules: 'BorgModuleTool, BorgModuleCombatPKARailgun, BorgModuleJetpack', extraSlots: 4 }, { category: 'borgs', num: 5, name: 'Assault Walker Cyborg', health: '180 / 360', healthValue: 360, armor: 'Blunt: 22%, Slash: 22%, Piercing: 18%, Shock: 20%
Heat: -15 (flat)', speed: '3.2 / 5.0', speedValue: 5.0, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleEngineering', defaultModules: 'BorgModuleTool, BorgModuleCombatLaserAdvanced, BorgModuleJetpack', extraSlots: 2 }, { category: 'borgs', num: 6, name: 'Heavy Strike Walker Cyborg', health: '240 / 480', healthValue: 480, armor: 'Blunt: 27%, Slash: 27%, Piercing: 24%, Shock: 27%
Heat: -22 (flat)', speed: '2.8 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleCombat, BorgModuleEngineering', defaultModules: 'BorgModuleTool, BorgModuleCombatLaserHeavy, BorgModuleJetpack', extraSlots: 3 }, { category: 'borgs', num: 7, name: 'Syndicate Assault Cyborg', health: '100 / 200', healthValue: 200, armor: 'Heat: -10 (flat)', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleSyndicate, BorgModuleSyndicateAssault' }, { category: 'borgs', num: 8, name: 'Syndicate Medical Cyborg', health: '100 / 200', healthValue: 200, armor: 'Heat: -10 (flat)', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleMedical, BorgModuleSyndicate' }, { category: 'borgs', num: 9, name: 'Syndicate Saboteur Cyborg', health: '100 / 200', healthValue: 200, armor: 'Heat: -10 (flat)', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleEngineering, BorgModuleSyndicate' }, // Небоевые борги { category: 'standard', num: 10, name: 'Generic Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleScience', defaultModules: 'BorgModuleTool', extraSlots: 5 }, { category: 'standard', num: 11, name: 'Engineering Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleEngineering', defaultModules: 'BorgModuleTool', extraSlots: 3 }, { category: 'standard', num: 12, name: 'Mining Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleCargo', defaultModules: 'BorgModuleTool', extraSlots: 3 }, { category: 'standard', num: 13, name: 'Janitor Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleJanitor', defaultModules: 'BorgModuleTool', extraSlots: 3 }, { category: 'standard', num: 14, name: 'Medical Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleMedical', defaultModules: 'BorgModuleTool', extraSlots: 3 }, { category: 'standard', num: 15, name: 'Service Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleService', defaultModules: 'BorgModuleTool', extraSlots: 3 }, { category: 'standard', num: 16, name: 'Service Kerfus Cyborg', health: '100 / 200', healthValue: 200, armor: 'Нет', speed: '2.5 / 4.5', speedValue: 4.5, modules: 'BorgModuleGeneric, BorgModuleService', defaultModules: 'BorgModuleTool, BorgModuleMusique, BorgModuleTranslation, BorgModuleGardening', extraSlots: 2 } ];
       let currentData = [...borgsData];
       let sortDirection = 1;
       // Функция рендеринга таблицы
       function renderTable(data) {
           const tbody = document.getElementById('tableBody');
           tbody.innerHTML = ;
           let currentCategory = ;
           data.forEach(item => {
               // Добавляем заголовок категории
               if (item.category !== currentCategory) {
                   currentCategory = item.category;
                   const categoryRow = document.createElement('tr');
                   categoryRow.className = 'category';
                   let categoryTitle = ;
                   if (item.category === 'borgs') categoryTitle = '⚔️ БОЕВЫЕ БОРГИ';
                   else if (item.category === 'standard') categoryTitle = '🛠️ НЕБОЕВЫЕ БОРГИ';

categoryRow.innerHTML = `${categoryTitle}`;

                   tbody.appendChild(categoryRow);
               }
               // Добавляем строку данных
               const row = document.createElement('tr');
               // Определяем класс для здоровья
               let healthClass = ;
               if (item.healthValue >= 400) healthClass = 'health-high';
               else if (item.healthValue >= 250) healthClass = 'health-medium';
               else if (item.healthValue > 0) healthClass = 'health-low';
               // Определяем класс для скорости
               let speedClass = ;
               if (item.speedValue >= 5.0) speedClass = 'speed-fast';
               else if (item.speedValue >= 4.5) speedClass = 'speed-medium';
               else if (item.speedValue > 0) speedClass = 'speed-slow';
               // Форматируем броню с переносами строк
               const armorFormatted = item.armor === 'Нет' ? 'Нет' : item.armor.split(', ').join('
');
               // Форматируем модули с переносами строк
               const modulesFormatted = item.modules.split(', ').map(m =>
                   `${m}`
               ).join('
');
               // Форматируем дефолтные модули (если есть) с переносами строк
               const defaultModulesFormatted = item.defaultModules
                   ? item.defaultModules.split(', ').map(m => `${m}`).join('
')  : '-';
               // Дополнительные слоты
               const extraSlotsText = item.extraSlots ? `+${item.extraSlots}` : '-';
               row.innerHTML = `

${item.num} ${item.name} ${item.health} ${item.speed} ${armorFormatted} ${modulesFormatted} ${defaultModulesFormatted} ${extraSlotsText}

               `;
               tbody.appendChild(row);
           });
       }
       // Функция рендеринга таблицы модулей
       function renderModuleTable(data) {
           const tbody = document.getElementById('moduleTableBody');
           tbody.innerHTML = ;
           let currentCategory = ;
           data.forEach(item => {
               // Добавляем заголовок категории
               if (item.category !== currentCategory) {
                   currentCategory = item.category;
                   const categoryRow = document.createElement('tr');
                   categoryRow.className = 'category';
                   let categoryName = ;
                   if (item.category === 'combat') categoryName = '⚔️ БОЕВЫЕ МОДУЛИ';
                   else if (item.category === 'generic') categoryName = '🔧 УНИВЕРСАЛЬНЫЕ МОДУЛИ';
                   else if (item.category === 'medical') categoryName = '⚕️ МЕДИЦИНСКИЕ МОДУЛИ';
                   else if (item.category === 'cargo') categoryName = '📦 ГРУЗОВЫЕ МОДУЛИ';
                   else if (item.category === 'engineering') categoryName = '⚙️ ИНЖЕНЕРНЫЕ МОДУЛИ';
                   else if (item.category === 'janitor') categoryName = '🧹 УБОРОЧНЫЕ МОДУЛИ';
                   else if (item.category === 'science') categoryName = '🔬 НАУЧНЫЕ МОДУЛИ';
                   else if (item.category === 'service') categoryName = '🍽️ СЕРВИСНЫЕ МОДУЛИ';
                   else if (item.category === 'syndicate') categoryName = '🔴 СИНДИКАТСКИЕ МОДУЛИ';

categoryRow.innerHTML = `${categoryName}`;

                   tbody.appendChild(categoryRow);
               }
               // Добавляем строку данных
               const row = document.createElement('tr');
               // Форматируем встроенные предметы с переносами строк
               const itemsFormatted = item.items.split(', ').join('
');
               row.innerHTML = `

${item.num} ${item.nameEn} ${item.type} ${item.descRu} ${itemsFormatted}

               `;
               tbody.appendChild(row);
           });
       }
       // Функция фильтрации
       function filterTable() {
           const searchValue = document.getElementById('searchInput').value.toLowerCase();
           const categoryValue = document.getElementById('categoryFilter').value;
           // Фильтруем борги
           if (categoryValue === 'all' || categoryValue === 'borgs' || categoryValue === 'standard') {
               currentData = borgsData.filter(item => {
                   const matchesSearch = item.name.toLowerCase().includes(searchValue) ||
                                       item.modules.toLowerCase().includes(searchValue);
                   const matchesCategory = categoryValue === 'all' || item.category === categoryValue;
                   return matchesSearch && matchesCategory;
               });
               renderTable(currentData);
               document.getElementById('borgTable').parentElement.style.display = 'block';
           } else {
               document.getElementById('borgTable').parentElement.style.display = 'none';
           }
           // Фильтруем модули
           if (categoryValue === 'all' || categoryValue === 'combat' || categoryValue === 'generic' ||
               categoryValue === 'medical' || categoryValue === 'cargo' || categoryValue === 'engineering' ||
               categoryValue === 'janitor' || categoryValue === 'science' || categoryValue === 'service' ||
               categoryValue === 'syndicate') {
               const currentModuleData = modulesData.filter(item => {
                   const matchesSearch = item.nameEn.toLowerCase().includes(searchValue) ||
                                       item.type.toLowerCase().includes(searchValue) ||
                                       item.items.toLowerCase().includes(searchValue);
                   const matchesCategory = categoryValue === 'all' || item.category === categoryValue;
                   return matchesSearch && matchesCategory;
               });
               renderModuleTable(currentModuleData);
               document.getElementById('moduleTable').parentElement.style.display = 'block';
           } else {
               document.getElementById('moduleTable').parentElement.style.display = 'none';
           }
       }
       // Функция сброса фильтров
       function resetFilters() {
           document.getElementById('searchInput').value = ;
           document.getElementById('categoryFilter').value = 'all';
           filterTable();
       }
       // Функция сортировки модулей
       function sortModuleTable(columnIndex) {
           // Простая сортировка для модулей
           alert('Сортировка модулей по столбцу ' + columnIndex);
       }
       // Функция сортировки
       function sortTable(columnIndex) {
           sortDirection *= -1;
           currentData.sort((a, b) => {
               let aValue, bValue;
               switch(columnIndex) {
                   case 0: // Номер
                       aValue = a.num;
                       bValue = b.num;
                       break;
                   case 1: // Название
                       aValue = a.name;
                       bValue = b.name;
                       break;
                   case 2: // Здоровье
                       aValue = a.healthValue;
                       bValue = b.healthValue;
                       break;
                   case 4: // Скорость
                       aValue = a.speedValue;
                       bValue = b.speedValue;
                       break;
                   default:
                       return 0;
               }
               if (typeof aValue === 'string') {
                   return sortDirection * aValue.localeCompare(bValue);
               }
               return sortDirection * (aValue - bValue);
           });
           renderTable(currentData);
       }
       // Инициализация таблицы при загрузке страницы
       document.addEventListener('DOMContentLoaded', () => {
           renderTable(borgsData);
           renderModuleTable(modulesData);
       });
   </script>

</body> </html>