Боевые борги
<!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>