bc/server/data/index.js
2025-05-18 10:50:38 +03:00

75 lines
4.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// /server/data/index.js
// Импортируем отдельные части игровых данных
const { elenaBaseStats, balardBaseStats, almagestBaseStats } = require('./characterStats');
const { elenaAbilities, balardAbilities, almagestAbilities } = require('./characterAbilities');
const { tauntSystem } = require('./taunts'); // Предполагается, что taunts.js экспортирует объект tauntSystem
// Собираем все данные в один объект gameData,
// который будет использоваться в других частях серверной логики (например, gameLogic, GameInstance).
// Эта структура аналогична той, что была в вашем исходном большом файле data.js.
const gameData = {
// Базовые статы персонажей по их ключам для удобного доступа
// (хотя dataUtils.js теперь предоставляет функции для этого,
// можно оставить и такую структуру для обратной совместимости или прямого доступа, если нужно)
baseStats: {
elena: elenaBaseStats,
balard: balardBaseStats,
almagest: almagestBaseStats
},
// Способности персонажей по их ключам
abilities: {
elena: elenaAbilities,
balard: balardAbilities,
almagest: almagestAbilities
},
// Система насмешек
tauntSystem: tauntSystem,
// Если вы хотите сохранить оригинальную структуру вашего предыдущего data.js,
// где были прямые ссылки на playerBaseStats, opponentBaseStats и т.д.,
// вы можете добавить их сюда. Однако, с новой структурой dataUtils.js
// это становится менее необходимым, так как dataUtils предоставляет
// функции для получения данных по characterKey.
// Для примера, если бы playerBaseStats всегда был Елена, а opponentBaseStats всегда Балард:
// playerBaseStats: elenaBaseStats, // Обычно Елена
// opponentBaseStats: balardBaseStats, // Обычно Балард (AI)
// almagestBaseStats: almagestBaseStats, // Для Альмагест (PvP)
// playerAbilities: elenaAbilities,
// opponentAbilities: balardAbilities, // Способности Баларда (AI)
// almagestAbilities: almagestAbilities,
// Рекомендуемый подход: экспортировать данные, сгруппированные по персонажам,
// а для получения данных конкретного "игрока" или "оппонента" в игре
// использовать dataUtils.getCharacterData(characterKey) в GameInstance/GameManager.
// Это более гибко, так как в PvP Елена может быть оппонентом, а Альмагест - игроком.
};
// Экспортируем собранный объект gameData
module.exports = gameData;
/*
Примечание:
В GameInstance, GameManager, gameLogic и других модулях, где раньше был:
const gameData = require('./data'); // или другой путь к старому data.js
Теперь будет:
const gameData = require('../data'); // или '../data/index.js' - Node.js поймет и так
или
const dataUtils = require('../data/dataUtils');
И если вы используете gameData напрямую:
const elenaStats = gameData.baseStats.elena;
const balardAbils = gameData.abilities.balard;
Если используете dataUtils:
const elenaFullData = dataUtils.getCharacterData('elena');
const balardAbils = dataUtils.getCharacterAbilities('balard');
Выбор зависит от того, насколько гранулированный доступ вам нужен в каждом конкретном месте.
Объект gameData, экспортируемый этим файлом, может быть полезен для gameLogic,
где функции могут ожидать всю структуру данных сразу.
*/