Some checks failed
Deploy Project BC / deploy (push) Failing after 33s
72 lines
3.3 KiB
JavaScript
72 lines
3.3 KiB
JavaScript
// /server/data/dataUtils.js
|
||
|
||
// Импортируем непосредственно определенные статы и способности
|
||
const { elenaBaseStats, balardBaseStats, almagestBaseStats } = require('./characterStats');
|
||
const { elenaAbilities, balardAbilities, almagestAbilities } = require('./characterAbilities');
|
||
// const { tauntSystem } = require('./taunts'); // Если нужны утилиты для насмешек
|
||
|
||
/**
|
||
* Получает полный набор данных для персонажа по его ключу.
|
||
* Включает базовые статы и список способностей.
|
||
* @param {string} characterKey - Ключ персонажа ('elena', 'balard', 'almagest').
|
||
* @returns {{baseStats: object, abilities: Array<object>}|null} Объект с данными или null, если ключ неизвестен.
|
||
*/
|
||
function getCharacterData(characterKey) {
|
||
if (!characterKey) {
|
||
console.warn("[DataUtils] getCharacterData_called_with_null_or_undefined_key");
|
||
return null;
|
||
}
|
||
switch (characterKey.toLowerCase()) { // Приводим к нижнему регистру для надежности
|
||
case 'elena':
|
||
return { baseStats: elenaBaseStats, abilities: elenaAbilities };
|
||
case 'balard':
|
||
return { baseStats: balardBaseStats, abilities: balardAbilities };
|
||
case 'almagest':
|
||
return { baseStats: almagestBaseStats, abilities: almagestAbilities };
|
||
default:
|
||
console.error(`[DataUtils] getCharacterData: Unknown character key "${characterKey}"`);
|
||
return null;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* Получает только базовые статы для персонажа по его ключу.
|
||
* @param {string} characterKey - Ключ персонажа.
|
||
* @returns {object|null} Объект базовых статов или null.
|
||
*/
|
||
function getCharacterBaseStats(characterKey) {
|
||
const charData = getCharacterData(characterKey);
|
||
return charData ? charData.baseStats : null;
|
||
}
|
||
|
||
/**
|
||
* Получает только список способностей для персонажа по его ключу.
|
||
* @param {string} characterKey - Ключ персонажа.
|
||
* @returns {Array<object>|null} Массив способностей или null.
|
||
*/
|
||
function getCharacterAbilities(characterKey) {
|
||
const charData = getCharacterData(characterKey);
|
||
return charData ? charData.abilities : null;
|
||
}
|
||
|
||
/**
|
||
* Получает имя персонажа по его ключу.
|
||
* @param {string} characterKey - Ключ персонажа.
|
||
* @returns {string|null} Имя персонажа или null.
|
||
*/
|
||
function getCharacterName(characterKey) {
|
||
const baseStats = getCharacterBaseStats(characterKey);
|
||
return baseStats ? baseStats.name : null;
|
||
}
|
||
|
||
// Можно добавить другие утилитарные функции по мере необходимости,
|
||
// например, для поиска конкретной способности по ID у персонажа,
|
||
// или для получения данных для инициализации gameState и т.д.
|
||
|
||
module.exports = {
|
||
getCharacterData,
|
||
getCharacterBaseStats,
|
||
getCharacterAbilities,
|
||
getCharacterName
|
||
// ...другие экспортируемые утилиты
|
||
}; |