Some checks failed
Deploy Project BC / deploy (push) Failing after 33s
75 lines
4.4 KiB
JavaScript
75 lines
4.4 KiB
JavaScript
// /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,
|
||
где функции могут ожидать всю структуру данных сразу.
|
||
*/ |