Skip to content

Gabryelf/Battle_Script

Repository files navigation

BattleScript - Карточная игра 1 на 1

BattleScript Logo Node.js WebSocket License

Тактическая карточная дуэль в реальном времени с системой готовых карт и наблюдателями.

🎮 Основные возможности

✅ Версия 0.0.1 - Базовая игра

  • Режим 1 на 1 - Два игрока, остальные наблюдают
  • Готовые карты - 12 сбалансированных карт в конфигурации
  • Автоматический матчмейкинг - Очередь для поиска противника
  • Полноэкранный интерфейс - Адаптивный дизайн без скроллинга
  • Встроенные звуки - Звуковые эффекты действий
  • Чат и лог боя - Общение и история событий
  • Авто-атака - Умный алгоритм выбора целей
  • Способности карт - 10 уникальных способностей

📋 Требования к системе

  • Node.js 16.0 или выше
  • Современный браузер с поддержкой WebSocket
  • Доступ в интернет (для WebSocket соединения)

🚀 Быстрый старт

1. Установка

# Клонируйте проект
git clone <repository-url>
cd battlescript

# Установите зависимости
npm install

2. Запуск сервера

# Способ 1: Через скрипт (Windows)
start-server.bat

# Способ 2: Через Node.js
node server.js

# Способ 3: Через npm
npm start

3. Подключение к игре

  1. Откройте браузер и перейдите по адресу: http://localhost:3000
  2. Введите имя игрока
  3. Нажмите "Быстрый старт" для поиска противника
  4. Игра начнется автоматически при нахождении соперника

🎯 Правила игры

Основные механики

  • Здоровье: У каждого игрока 30 очков здоровья
  • Мана: Начинается с 3, увеличивается на 1 каждый ход
  • Колода: 30 карт, 3 карты в начальной руке
  • Ход: 2 минуты на ход
  • Победа: Уничтожить героя противника

Типы карт

  1. Существа - Остаются на поле, могут атаковать
  2. Заклинания - Разовые эффекты

Способности

Способность Описание Стоимость
Провокация Приоритетная цель для атак +1 к стоимости
Прорыв Атакует дважды +1 к стоимости
Скрытность Неуязвим до атаки +1 к стоимости
Полет Атакует летающих/героя +1 к стоимости
Стрелок Атакует героя/летающих +1 к стоимости
Площадной урон Атакует 3 цели +2 к стоимости
Целитель Лечит союзников +2 к стоимости
Щит Снижает получаемый урон +1 к стоимости
Яд Наносит урон каждый ход +2 к стоимости
Возрождение Возвращается в руку после смерти +3 к стоимости

🗂️ Структура проекта

battlescript/
├── index.html          # Основной HTML файл
├── styles.css          # Стили игры
├── client.js           # Клиентская логика
├── server.js           # Серверная логика
├── config.js           # Конфигурация игры
├── start-server.bat    # Скрипт запуска (Windows)
├── package.json        # Зависимости Node.js
├── README.md           # Документация
└── .gitignore          # Игнорируемые файлы

⚙️ Конфигурация

Основные настройки (config.js)

{
    game: {
        maxPlayers: 2,              // Максимум игроков
        maxSpectators: 20,          // Максимум наблюдателей
        turnDuration: 120,          // Длительность хода (сек)
        startingHealth: 30,         // Начальное здоровье
        startingMana: 3,            // Начальная мана
        maxMana: 10,                // Максимальная мана
        deckSize: 30,               // Размер колоды
        initialHandSize: 3,         // Начальные карты
        cardsPerTurn: 1,            // Карт добавляется каждый ход
        drawCardCost: 1             // Стоимость взятия карты
    }
}

Добавление новых карт

// В файле config.js в массиве cards
{
    id: 'card_id',
    name: 'Название карты',
    type: 'creature', // или 'spell'
    cost: 3,
    attack: 2,
    health: 4,
    rarity: 'common', // common, rare, epic, legendary
    abilities: ['taunt', 'shield'],
    description: 'Описание карты',
    image: '👨‍⚖️' // Эмодзи или путь к изображению
}

🎮 Управление в игре

Основные кнопки

  • 🎯 Атаковать - Выбрать существо и цель для атаки
  • ▶️ Играть карту - Разыграть выбранную карту из руки
  • 🤖 Авто-атака - Автоматическая атака всех существ
  • ⏭️ Завершить ход - Передать ход противнику
  • 🔄 Взять карту - Взять карту из колоды (стоимость: 1 мана)

Интерфейс

  • Верхняя панель: Информация о противнике (здоровье, мана, рука)
  • Центр: Игровое поле с существами
  • Нижняя панель: Ваша информация и управление
  • Правая панель: Журнал боя и чат

🔧 Разработка

Архитектура

Клиент (Browser) <--WebSocket--> Сервер (Node.js)
       │                              │
       ├── HTML/CSS/JS               ├── Game Logic
       ├── UI Rendering              ├── Matchmaking
       └── User Input                └── State Management

Команды для разработки

# Запуск в режиме разработки
npm start

# Проверка кода
# (добавить ESLint если нужно)

# Тестирование
# (добавить тесты в будущих версиях)

Протокол сообщений WebSocket

// От клиента к серверу
{
    type: 'set_name',    // Установить имя
    type: 'join_queue',  // Встать в очередь
    type: 'play_card',   // Разыграть карту
    type: 'attack',      // Атаковать
    type: 'end_turn',    // Завершить ход
    type: 'chat_message' // Отправить сообщение
}

// От сервера к клиенту
{
    type: 'game_state',   // Обновление состояния
    type: 'game_started', // Начало игры
    type: 'game_ended',   // Конец игры
    type: 'chat_message', // Сообщение чата
    type: 'error'         // Ошибка
}

🐛 Отладка

Консольные команды

// В консоли браузера (F12)
gameClient.sendToServer({ type: 'debug_state' })  // Статус игры
console.log(gameClient)                           // Все данные клиента

Логи сервера

🎮 BattleScript Server v2.0
📊 Конфиг загружен: 12 карт
⚙️  Режим: 1 на 1, наблюдатели: 20

🔌 Подключение: client_123... (::1)
👤 client_123 установил имя: Игрок
⏳ Игрок встал в очередь
🎮 Создана игра game_123: Игрок1 vs Игрок2
🔄 Ход 1 в игре game_123: Игрок1

📊 Состояние проекта

✅ Завершено в 0.0.1

  • Базовая архитектура клиент-сервер
  • Система карт через конфиг
  • Матчмейкинг 1 на 1
  • Полноэкранный адаптивный интерфейс
  • Механика боя и способностей
  • Чат и система логов
  • Звуковые эффекты
  • Авто-атака

🔄 В работе

  • Балансировка карт
  • Оптимизация производительности
  • Документация API

🤝 Вклад в проект

Правила разработки

  1. Используйте формат коммитов: [тип]: описание

    • feat: Новая функциональность
    • fix: Исправление ошибок
    • docs: Документация
    • style: Форматирование кода
    • refactor: Рефакторинг
    • test: Тесты
    • chore: Вспомогательные задачи
  2. Перед отправкой PR:

    • Проверьте код на ошибки
    • Обновите документацию
    • Протестируйте изменения

📝 Лицензия

MIT License - смотрите файл LICENSE для подробностей.

👥 Авторы

  • Разработчик: [Ваше имя/команда]
  • Дизайн: BattleScript Team
  • Тестирование: Сообщество игроков

🔗 Ссылки


BattleScript © 2025 - Тактическая карточная дуэль


🎯 Итог версии 0.0.1

Что было достигнуто

  1. Рабочий прототип - Игра полностью функционирует
  2. Сбалансированные карты - 12 карт с 10 способностями
  3. Сетевой мультиплеер - Стабильные WebSocket соединения
  4. Адаптивный интерфейс - Работает на всех устройствах
  5. Базовая документация - Полное описание проекта

Что дальше

  • Переходите к версии 0.0.2 для новых функций
  • Собирайте фидбек от игроков
  • Улучшайте баланс на основе статистики
  • Планируйте масштабирование

About

✨ PvP CCG Combat Local ✨

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published